Jackson -Objekt -Serialisierung
Hier führen wir eine Serialisierung von Java -Objekten in eine JSON -Datei ein und lesen dann die JSON -Datei, um in ein Objekt konvertiert zu werden. In diesem Beispiel wird die Schülerklasse erstellt. Erstellen Sie ein Studentenobjekt, das in JSON in einer student.json -Datei dargestellt wird.
Erstellen Sie eine Java -Klassendatei namens Jacksontester in 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
Das Ergebnis der Überprüfung der Ausgabe wird wie folgt kopiert:
Student [Name: Mahesh, Alter: 10]
Jackson -Datenbindung Generika
Bei der einfachen Datenbindung verwenden wir String als Schlüsselobjekt und achten die Klasse als Wertobjekt. Stattdessen können wir bestimmte Java -Objekte und -Typen verwenden, um JSON zu übertragen.
Betrachten Sie das folgende Beispiel mithilfe einer Klasse userData, um benutzerspezifische Daten zu speichern.
Erstellen Sie ein Verzeichnis namens Jacksontester in der Java -Klassendatei c:/> jackson_workspace.
Dateiname: jacksontester.java
Import Java.io.file; Import Java.io.ioxception; Import Java.util.Arrays; Import Java.util.hashMap; Import Java.util.list; Import Java.util.map; org.codeehaus.jackson.map.jsonmapPingexception; import org.codeehaus.jackson.map.objectmapper; try {ObjectMapper mapper = new ObjectMapper (); Map userDatamap = new HashMap (); UserData studentData = new UserData (); int [] marks = {1,2,3}; Student Student = New Student (); Student.Setage (10); Student.SetName ("Mahesh"); // Java -Objekt studentData.setstudent (Student); // Java String studentData.setName ("Mahesh Kumar"); // java boolean studentData.setverified (boolean.false); // Array studentData.setmarks (Marks); TypeReference Ref = New TypeReference> () {}; userDatamap.put ("StudentData1", StudentData); mapper.writeValue (neue Datei ("student.json"), userDatamap); //{ // "studentData1": // { // "student": // { // "name":"Mahesh", // "age":10 // }, // "name":"Mahesh Kumar", // "verified":false, // "marks":[1,2,3] // } //} userDataMap = mapper.readValue(new Datei ("student.json"), ref); System.out.println (userDatamap.get ("studentData1"). GetStudent ()); System.out.println (userDatamap.get ("studentData1"). GetName ()); System.out.println (userDatamap.get ("studentData1"). Getverified ()); System.out.println (arrays.toString (userDatamap.get ("studentData1"). Getmarks ())); } 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+ "]"; }} Klasse userData {privater Schüler; privater Zeichenfolge Name; privat booleschen verifiziert; private int [] Marks; public userData () {} public student getStudent () {return Student; } public void setStudent (Student) {this.student = student; } public String getName () {return name; } public void setName (String -Name) {this.name = name; } public boolean Getverified () {return verifiziert; } public void setverified (boolean verifiziert) {this.verified = verifiziert; } public int [] getMarks () {Rückgabemarken; } public void setMarks (int [] marks) {this.marks = marks; }}Überprüfen Sie die Ausgabe
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: 10] Mahesh Kumarfalse [1, 2, 3]