Die Datenbindungs -API wird für JSON -Konvertierung und -zugriff verwendet, indem Attribute oder Annotations -Pojo (normales Java -Objekt) verwendet werden. Hier sind zwei Arten davon.
Einfache Datenbindung - Konvertieren Sie JSON aus Java -Karten, Listen, Zeichenfolgen, Zahlen, Booleschen und Null -Objekten.
Vollständige Datenbindung - Konvertieren Sie JSON in jeden Java -Typ. Wir werden im nächsten Kapitel getrennt binden.
ObjectMapper liest/schreibt JSON zwei Arten von Datenbindung. Der bequemste Weg zur Datenbindung ist der XML-ähnliche JAXB-Parser.
Einfache Datenbindung
Einfache Datenbindung bezieht sich auf JSON -Mapping zu Java -Kerndatentypen. In der folgenden Tabelle werden die Beziehung zwischen JSON -Typ und Java -Typ aufgeführt.
Werfen wir einen Blick auf einfache Datenmanipulationsbindung. Hier werden wir Java -Primitive -Typen direkt JSON und umgekehrt zuordnen.
Erstellen Sie eine Java -Klassendatei namens Jacksontester im Verzeichnis c:/> jackson_workspace.
Datei: jacksontester.java
Java.io.file importieren; import java.io.ioxception; import Java.util.hashMap; import Java.util.map; org.codeehaus.jackson.map.objectmapper; öffentliche Klasse Jacksontester {public static void main (String args []) {Jacksontester tester = new Jacksontester (); try {ObjectMapper mapper = new ObjectMapper (); Karte <string, Objekt> studentDatamap = new HashMap <String, Object> (); int [] marks = {1,2,3}; Student Student = New Student (); Student.Setage (10); Student.SetName ("Mahesh"); // Java Objekt studentDatamap.put ("Student", Student); // Java String studentDatamap.put ("Name", "Mahesh Kumar"); // java boolean studentDatamap.put ("verifiziert", boolean.false); // Array studentDatamap.put ("Marks", Marks); mapper.writeValue (neue Datei ("student.json"), studentDatamap); // result student.json // {// "Student": {"Name": "Mahesh", "Alter": 10}, // "Marks": [1,2,3], // "verifiziert": false, // "Name": "Mahesh Kumar" //} studentDatamap = mapper.Read. System.out.println (StudentDatamap.get ("Student")); System.out.println (studentDatamap.get ("name")); System.out.println (studentDatamap.get ("verifiziert"); System.out.println (StudentDatamap.get ("Marks")); } 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 das Ausgabeergebnis
{name = Mahesh, Alter = 10} Mahesh Kumarfalse [1, 2, 3] Vollständige Datenbindung
Die vollständige Datenbindung bezieht sich auf JSON -Mapping auf jedes Java -Objekt.
// Erstellen Sie einen ObjectMapper InstanceObjectMapper Mapper = new ObjectMapper (); // MAP JSON -Inhalte an student -ObjectStudent student = mapper.readValue (neue Datei ("student.json"), student.class); // Map Student Object an JSON ContentMapper.WriteValue (neue Datei ("student.json"), student);Werfen wir einen Blick auf einfache Datenmanipulationsbindung. Hier werden wir Java -Objekte direkt an JSON und umgekehrt abbilden.
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 org.codeehaus.jackson.jsongenerationException; import org.codeehaus.jackson.jsonParseException; import org.codehaus.jackson.map.jsonmapingException; static void main (String args []) {Jacksontester tester = new Jacksontester (); try {student student = new student (); Student.Setage (10); Student.SetName ("Mahesh"); tester.writejson (Student); Student student1 = tester.readjson (); System.out.println (student1); } catch (jsonParseException e) {e.printstacktrace (); } catch (jsonmapPingexception e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); }} private void writeJson (Student Student) löst JsongenerationException, JsonMapPingException, IOException {ObjectMapper mapper = new ObjectMapper () aus; mapper.writeValue (neue Datei ("student.json"), Student); } private student readjson () löst JsonParseException, JsonMapPingexception, IOException {ObjectMapper mapper = new ObjectMapper () aus; Student student = mapper.readValue (neue Datei ("student.json"), student.class); Rückkehrer; }} 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
Stellen Sie sicher, dass der Kopiercode wie folgt kopiert wird:
Student [Name: Mahesh, Alter: 10]