, streaming api - læser og skriver json indhold som særskilte begivenheder.jsonparser læser data, mens jsongenerator skriver data.,,, det er det mest effektive tilgang blandt de tre forarbejdning rejsemåder, som jackson støtter.,,, det har de laveste omkostninger, og det er den hurtigste måde at udføre læse /skrive operationer.,,, det er analog med stax parser for xml -.,, i dette kapitel vil vi drøfte, hvordan vi skal læse og skrive json data ved hjælp af jackson streaming api - grænseflader.streaming af api - arbejder med begrebet tegn, og alle oplysninger om json skal håndteres forsigtigt.følgende er de to kategorier, som vi vil anvende i eksemplerne i dette kapitel og minus,,,,, jsongenerator, &minus, skrive til json snor.,,,, jsonparser, &minus, analysere json snor.,,, skrive til json ved hjælp af jsongenerator, det er ret simpelt at bruge jsongenerator.først skabe de jsongenerator ved hjælp af jsonfactory. createjsongenerator() metode og bruge sin skrive * * * () metoder til at skrive hver json værdi. jsonfactory jasonfactory = nye jsonfactory(); jsongenerator jsongenerator = jasonfactory. createjsongenerator (ny database ("elev. json"), jsonencoding. utf - 8); jsongenerator. writestartobject(); //"navn" "mahesh kumar" jsongenerator. writestringfield ("navn", "mahesh kumar"), lad os se jsongenerator i aktion.skabe en java klasse fil, der hedder jacksontester i, c: \\> jackson_workspace,., fil: jacksontester.java, import java.io.file; import java.io.ioexception; import java.util.map; import org.codehaus.jackson.jsonencoding; import org.codehaus.jackson.jsonfactory; import org.codehaus.jackson.jsongenerator; import org.codehaus.jackson.jsonparseexception; import org.codehaus.jackson.map.jsonmappingexception; import org.codehaus.jackson.map.objectmapper; offentlige klasse jacksontester {offentlige statisk tomrum vigtigste (string - args []) (jacksontester - tester = nye jacksontester(); prøve (jsonfactory jasonfactory = nye jsonfactory(); jsongenerator jsongenerator = jasonfactory. createjsongenerator (ny database ("elev. json"), jsonencoding. utf - 8); //(jsongenerator. writestartobject(); //"navn": "mahesh kumar" jsongenerator. writestringfield ("navn", "mahesh kumar"); //"alder": 21 jsongenerator. writenumberfield ("alder", 21); //"kontrol": falske jsongenerator. writebooleanfield ("bekræftet" falsk); //"mærker": [100, 90, 85] jsongenerator. writefieldname ("mærker"); //[jsongenerator. writestartarray(); //100, 90, 85 jsongenerator. writenumber (100); jsongenerator. writenumber (90); jsongenerator. writenumber (85): //]jsongenerator. writeendarray(); //} jsongenerator. writeendobject(); jsongenerator. close(); //resultat student.json //(//"navn": "mahesh kumar" /"alder": 21 //"kontrol": falske, //"mærker": [100,90,85] //} objectmapper mapper = nye objectmapper(); kort < snor, objekt > datamap = mapper. readvalue (ny database ("elev. json"), kort. klasse) system. println (datamap. kom ("navn") system. println (datamap. kom ("alder")) system. println (datamap. kom ("bekræftet") system. println (datamap. kom ("mærker")} fangst (jsonparseexception e) (f. eks.printstacktrace();} fangst (jsonmappingexception e) (f. printstacktrace();} fangst (ioexception e) (f. printstacktrace();}}}, kontrollere resultatet, samle de klasser af javac, de således − c:. jackson_workspace> javac jacksontester.java nu gennemføre jacksontester se resultatet. c: det jackson_workspace> java jacksontester verificere output og minus;, mahesh kumar 21 falske [100, 90, 85], læse json ved hjælp af jsonparser ved hjælp af jsonparser igen er ret enkelt.først skabe de jsonparser ved hjælp af jsonfactory. createjsonparser() metode og bruge sin nexttoken() metode til at læse hvert json snor som bevis.tjek hvert tegn og proces i overensstemmelse hermed. jsonfactory jasonfactory = nye jsonfactory(); jjsonparser jsonparser = jasonfactory. createjsonparser (ny database ("elev. json"), mens (jsonparser. nexttoken()!= jsontoken. end_object) (//den nuværende symbolske snor fieldname = jsonparser. getcurrentname(); hvis ("navn". = (fieldname)) (//videre til næste tegn jsonparser. nexttoken(); system. println (jsonparser. gettext())}}, lad os se jsonparser i aktion.skabe en java klasse fil, der hedder jacksontester i, c: \\> jackson_workspace,., fil: jacksontester.java, import java.io.file; import java.io.ioexception; import org.codehaus.jackson.jsonencoding; import org.codehaus.jackson.jsonfactory; import org.codehaus.jackson.jsongenerator; import org.codehaus.jackson.jsonparseexception; import org.codehaus.jackson.jsonparser; import org.codehaus.jackson.jsontoken; import org.codehaus.jackson.map.jsonmappingexception; offentlige klasse jacksontester {offentlige statisk tomrum vigtigste (string - args []) (jacksontester - tester = nye jacksontester(); prøve (jsonfactory jasonfactory = nye jsonfactory(); jsongenerator jsongenerator = jasonfactory. createjsongenerator (ny database ("student.json "), jsonencoding. utf - 8); jsongenerator. writestartobject(); jsongenerator. writestringfield (" navn "," mahesh kumar "); jsongenerator. writenumberfield (" alder ", 21); jsongenerator. writebooleanfield (" bekræftet "falsk); jsongenerator. writefieldname (" mærker "); jsongenerator. writestartarray(); ////////[jsongenerator. writenumber (100); jsongenerator. writenumber (90); jsongenerator. writenumber (85); jsongenerator. writeendarray(); jsongenerator. writeendobject(); jsongenerator. close(); //resultat student.json //(//" navn ":" mahesh kumar "/" alder ": 21 //" verif- ": falske, //" mærker ": [100,90,85] //} jsonparser jsonparser = jasonfactory. createjsonparser (ny database (" elev. json "), mens (jsonparser. nexttoken()!= jsontoken. end_object) (//den nuværende symbolske snor fieldname = jsonparser. getcurrentname(); hvis ("navn". = (fieldname)) (//videre til næste tegn jsonparser. nexttoken(); system. println (jsonparser. gettext())} hvis ("alder". = (fieldname)) (//videre til næste tegn jsonparser. nexttoken(); system. println (jsonparser. getnumbervalue())} hvis ("bekræftet". = (fieldname)) (//videre til næste tegn jsonparser. nexttoken(); system. println (jsonparser. getbooleanvalue());} hvis ("mærker". = (fieldname)) (//flytte til [jsonparser. nexttoken(); //loop indtil bevis svarende til "]", mens (jsonparser. nexttoken()!= jsontoken. end_array) (system. println (jsonparser. getnumbervalue())}}}} fangst (jsonparseexception e) (f. printstacktrace();} fangst (jsonmappingexception e) (f. printstacktrace();} fangst (ioexception e) (f. printstacktrace();}}}, kontrollere resultatet, samle de klasser af javac, de således − c:. jackson_workspace> javac jacksontester.java, nu kører det jacksontester se resultatet. c:. jackson_workspace> java jacksontester verificere output og minus;, mahesh kumar 21 falske [100, 90, 85]
jackson streaming api -
Previous:jackson træ model
Next Page:java xml - forelæsning