Jacksons erstes Programm
Bevor Sie die Details des Erlernens der Jackson -Bibliothek eingeben, schauen wir uns die Funktionen für die Anwendungsoperation an. In diesem Beispiel erstellen wir eine Schülerklasse. Eine JSON -String wird erstellt und zum Objekt des Schülers deserialisiert und dann mit der JSON -Zeichenfolge serialisiert.
Erstellen Sie eine Java -Klassendatei namens Jacksontester C:/> Jackson_Workspace.
Datei: jacksontester.java
importieren java.io.ioxception; import org.codeehaus.jackson.jsonParseException; import org.codeehaus.jackson.map.jsonmapPingexception; args []) {ObjectMapper mapper = new ObjectMapper (); String jkonstring = "{/" name/":/" mahesh/",/" ay/": 21}"; // map json to student try {student student = mapper.readValue (jSonstring, student.class); System.out.println (Student); Mapper.Enable (SerializationConfig.Feature.indent_output); JSonstring = Mapper.WriteValueasString (Student); System.out.println (jSonstring); } catch (jsonParseException e) {e.printstacktrace (); } catch (jsonmapPingexception e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); }}} Klasse Schüler {privater String -Name; privates int Alter; public student () {} public String getName () {return name; } public void setName (String -Name) {this.name = name; } public int getage () {return ay; } public void setage (int age) {this.age = älter; } public String toString () {return "Student [Name:"+ name+ ", Alter:"+ Alter+ "]"; }}Überprüfungsergebnisse
Verwenden Sie Javac, um die folgende Klasse zu kompilieren:
Die Codekopie lautet wie folgt:
C:/jackson_workspace> javac jacksontester.java
Führen Sie jetzt Jacksontester aus, um das Ergebnis zu sehen:
Die Codekopie lautet wie folgt:
C:/Jackson_Workspace> Java Jacksontester
Überprüfen Sie die Ausgabe
Student [Name: Mahesh, Alter: 21] {"Name": "Mahesh", "Alter": 21}Schritte - Hier sind die wichtigen Schritte, die hier berücksichtigt werden müssen.
Schritt 1: Erstellen Sie ein ObjectMapper -Objekt.
Erstellen Sie ein ObjectMapper -Objekt. Es ist ein wiederverwendbares Objekt. /
Die Codekopie lautet wie folgt:
ObjectMapper Mapper = new ObjectMapper ();
Schritt 2: Deserialize JSON zum Objekt.
Verwenden Sie die Methode ReadValue (), um aus dem JSON -Objekt zu erhalten. JSON String/Quelle wird als Parameter JSON -String und Objekttyp übergeben.
// Einwände gegen JSON ConversionStudent Student = mapper.readValue (JSonstring, Student.Class);
Schritt 3: Serialisieren Sie das Objekt mit JSON.
Verwenden Sie die Methode "WriteValUeAsString (), um die JSON -String -Darstellung des Objekts zu erhalten.
// Objekt gegen JSON -Conversion jSonstring = mapper.writevalueasString (Student);
Jackson Tree Model
Das Baummodell erstellt die Memory -Baum -Darstellung der JSON -Datei. ObjectMapper baut den JsonNode -Knotenbaum. Dies ist der flexibelste Ansatz. Es ähnelt dem XML des Dom -Parsers.
Erstellen Sie einen Baum von JSON
ObjectMapper bietet nach dem Lesen von JSON einen Zeigerbaum -Root -Knoten. Der Wurzelknoten kann verwendet werden, um den gesamten Baum zu durchqueren. Betrachten Sie den folgenden Code -Snippet, um den Stammknoten zu erhalten, der die JSON -Zeichenfolge bereitstellt.
// Erstellen Sie einen ObjectMapper InstanceObjectMapper Mapper = new ObjectMapper (); String jkonstring = "{/" name/":/" mahesh kumar/",/" ay/": 21,/" verifiziert/": false,/" marks/": [100,90,85]}"; // Baum aus JsonjsonNode RootNode = mappper.Readtree (jSstring) erstellen; Traversalbaummodell
Verwenden Sie relative Pfade zum Stammknoten im Traversalbaum und verarbeiten Sie die Daten, um jeden Knoten zu erhalten. Betrachten Sie den folgenden Code -Snippet -Traversal des Baums des bereitgestellten Rootknotens.
Jsonnode namenode = rootNode.path ("name"); JsonNode marksnode = rootNode.Path ("Marks"); Iterator iterator = marksnode.getElements ();Das Beispiel erstellt ein Dateiverzeichnis namens Jacksontester in der Java -Klasse C:/> jackson_workspace.
Datei: jacksontester.java
import Java.io.ioException; import Java.util.iterator; import org.codeehaus.jackson.jsonnode; import org.codeehaus.jackson.jsonParseException; import org.codehaus.jackson.map.jsonmapingException; void main (String args []) {Jacksontester tester = new Jacksontester (); try {ObjectMapper mapper = new ObjectMapper (); String jkonstring = "{/" name/":/" mahesh kumar/",/" ay/": 21,/" verifiziert/": false,/" marks/": [100,90,85]}"; JSONNODE rootNode = mappper.readtree (JSonstring); JsonNode namenode = rootNode.Path ("Name"); System.out.println ("name:"+ namenode.getTextValue ()); JSONNODE AGENODE = rootNode.Path ("Alter"); System.out.println ("Alter:" + agenode.getIntValue ()); JSONNODE verifizierteNode = rootNode.Path ("verifiziert"); System.out.println ("verifiziert:" + (verifizierteNode.getbooleanValue ()? "Ja": "Nein"); JsonNode marksnode = rootNode.Path ("Marks"); Iterator <JsonNode> iterator = marksnode.getElements (); System.out.print ("Marks: ["); while (iterator.hasnext ()) {jsonnode marks = iterator.next (); System.out.print (marks.getIntValue () + ""); } System.out.println ("]"); } catch (jsonParseException e) {e.printstacktrace (); } catch (jsonmapPingexception e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); }}}Überprüfen Sie das Ausgabeergebnis
Verwenden Sie Javac, um die folgende Klasse zu kompilieren:
Die Codekopie lautet wie folgt:
C:/jackson_workspace> javac jacksontester.java
Führen Sie jetzt Jacksontester aus, um das Ergebnis zu sehen:
Die Codekopie lautet wie folgt:
C:/Jackson_Workspace> Java Jacksontester
Überprüfen Sie die Ausgabe
Name: Mahesh Kumarage: 21Verified: Nomarks: [100 90 85]
Umwandlung von Baum zu JSON
In diesem Beispiel haben wir JsonNode verwendet und in eine JSON -Datei geschrieben und zurückgelesen, um einen Baum zu erstellen.
Erstellen Sie ein Verzeichnis namens Jacksontester in der Java -Klassendatei c:/> jackson_workspace.
Datei: jacksontester.java
Import Java.io.file; Import java.io.ioxception; import Java.util.iterator; import org.codeehaus.jackson.jsonnode; import org.codehaus.jackson.jsonParseException; import.codehehaus.jackson.jsonmaping; org.codeehaus.jackson.node.ArrayNode; import org.codeehaus.jackson.node.objectnode; öffentliche Klasse Jacksontester {public static void main (String args []) {Jacksontester Tester = New Jacksontester (); try {ObjectMapper mapper = new ObjectMapper (); Jsonnode rootNode = mapper.createObjectNode (); JsonNode marksnode = mapper.CreatearrayNode (); ((ArrayNode) marksnode) .add (100); ((ArrayNode) marksnode) .add (90); ((ArrayNode) marksnode) .add (85); ((ObjectNode) RootNode) .put ("Name", "Mahesh Kumar"); ((ObjectNode) rootNode) .put ("Alter", 21); ((ObjectNode) rootNode) .put ("verifiziert", falsch); ((ObjectNode) rootNode) .put ("marks", marksnode); mapper.writeValue (neue Datei ("student.json"), rootNode); rootNode = mapper.readtree (neue Datei ("student.json"); JsonNode namenode = rootNode.Path ("Name"); System.out.println ("name:"+ namenode.getTextValue ()); JSONNODE AGENODE = rootNode.Path ("Alter"); System.out.println ("Alter:" + agenode.getIntValue ()); JSONNODE verifizierteNode = rootNode.Path ("verifiziert"); System.out.println ("verifiziert:" + (verifizierteNode.getbooleanValue ()? "Ja": "Nein"); JsonNode marksnode1 = rootNode.Path ("Marks"); Iterator <JsonNode> iterator = marksnode1.getElements (); System.out.print ("Marks: ["); while (iterator.hasnext ()) {jsonnode marks = iterator.next (); System.out.print (marks.getIntValue () + ""); } System.out.println ("]"); } catch (jsonParseException e) {e.printstacktrace (); } catch (jsonmapPingexception e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); }}}Überprüfungsergebnisse
Verwenden Sie Javac, um die folgende Klasse zu kompilieren:
Die Codekopie lautet wie folgt:
C:/jackson_workspace> javac jacksontester.java
Führen Sie jetzt Jacksontester aus, um das Ergebnis zu sehen:
Die Codekopie lautet wie folgt:
C:/Jackson_Workspace> Java Jacksontester
Überprüfen Sie die Ausgabe
Name: Mahesh Kumar
Alter: 21
Verifiziert: nein
Markierungen: [100 90 85]
Konvertierung vom Baum zu Java -Objekt
In diesem Beispiel haben wir JsonNode verwendet und in eine JSON -Datei geschrieben und zurückgelesen und dann ein Schülerobjekt konvertiert, um einen Baum zu erstellen.
Erstellen Sie ein Verzeichnis namens Jacksontester in der Java -Klassendatei c:/> jackson_workspace.
Datei: jacksontester.java
import Java.io.file; import Java.io.ioxception; import Java.util.arrays; import org.codeehaus.jackson.jsonnode; import org.codehaus.jackson.jsonParseException; import.codehehaus.jackson.jsonmaping; org.codeehaus.jackson.node.ArrayNode; import org.codeehaus.jackson.node.objectnode; öffentliche Klasse Jacksontester {public static void main (String args []) {Jacksontester Tester = New Jacksontester (); try {ObjectMapper mapper = new ObjectMapper (); Jsonnode rootNode = mapper.createObjectNode (); JsonNode marksnode = mapper.CreatearrayNode (); ((ArrayNode) marksnode) .add (100); ((ArrayNode) marksnode) .add (90); ((ArrayNode) marksnode) .add (85); ((ObjectNode) RootNode) .put ("Name", "Mahesh Kumar"); ((ObjectNode) rootNode) .put ("Alter", 21); ((ObjectNode) rootNode) .put ("verifiziert", falsch); ((ObjectNode) rootNode) .put ("marks", marksnode); mapper.writeValue (neue Datei ("student.json"), rootNode); rootNode = mapper.readtree (neue Datei ("student.json"); Student student = mapper.treetovalue (rootNode, student.class); System.out.println ("Name:"+ student.getName ()); System.out.println ("Alter:" + student.getage ()); System.out.println ("verifiziert:" + (student.isverified ()? "Ja": "Nein"); System.out.println ("Marks:"+arrays.toString (student.getmarks ())); } catch (jsonParseException e) {e.printstacktrace (); } catch (jsonmapPingexception e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); }}} Klasse Schüler {String -Name; int Alter; boolean verifiziert; int [] Marks; public String getName () {return name; } public void setName (String -Name) {this.name = name; } public int getage () {return ay; } public void setage (int age) {this.age = älter; } public boolean isverified () {return verifiziert; } public void setverified (boolean verifiziert) {this.verified = verifiziert; } public int [] getMarks () {Rückgabemarken; } public void setMarks (int [] marks) {this.marks = marks; }}Überprüfungsergebnisse
Verwenden Sie Javac, um die folgende Klasse zu kompilieren:
Die Codekopie lautet wie folgt:
C:/jackson_workspace> javac jacksontester.java
Führen Sie jetzt Jacksontester aus, um das Ergebnis zu sehen:
Die Codekopie lautet wie folgt:
C:/Jackson_Workspace> Java Jacksontester
Überprüfen Sie die Ausgabe
Name: Mahesh Kumarage: 21Verified: Nomarks: [100 90 85]