Jackson Object serialization
this will introduce the serialization of Java objects to a JSON file and then the JSON file fetch to the object. In this example, the student class is created. The creation will have the student object represented in JSON in a Student.json file.
Create a Java class file named Jacksontester in C:\>jackson_workspace.
File: Jacksontester.java
Import Java.io.File;
Import java.io.IOException;
Import org.codehaus.jackson.JsonGenerationException;
Import org.codehaus.jackson.JsonParseException;
Import org.codehaus.jackson.map.JsonMappingException;
Import Org.codehaus.jackson.map.ObjectMapper;
public class Jacksontester {public 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) throws Jsongenerationexception, Jsonmappingexception, ioexception{OBJ
Ectmapper mapper = new Objectmapper ();
Mapper.writevalue (New File ("Student.json"), student); } priVate Student Readjson () throws Jsonparseexception, Jsonmappingexception, ioexception{objectmapper mapper = new OBJECTM
Apper ();
Student Student = Mapper.readvalue (New File ("Student.json"), Student.class);
return student;
} class Student {private String name;
private int age;
Public Student () {} public String GetName () {return name;
public void SetName (String name) {this.name = name;
public int getage () {return age;
public void Setage (int age) {this.age = age;
Public String toString () {return ' Student [name: ' +name+ ', Age: ' + age+ '] ';
}
}
Validation results
Use Javac to compile the following classes:
Copy Code code as follows:
C:\jackson_workspace>javac Jacksontester.java
Now run Jacksontester See the results:
Copy Code code as follows:
C:\jackson_workspace>java Jacksontester
Verifying output results
Copy Code code as follows:
Student [Name:mahesh, Age:10]
Jackson Data-binding generics
In simple data binding, we use string as the key object and map the class as a value object. Instead, we can use specific Java objects and types to cast to JSON.
Consider the following example to use the UserData of a class to save user-specific data.
Create a c:\>jackson_workspace named Jacksontester in the Java class file directory.
FileName: Jacksontester.java
Import Java.io.File;
Import java.io.IOException;
Import Java.util.Arrays;
Import Java.util.HashMap;
Import java.util.List;
Import Java.util.Map;
Import org.codehaus.jackson.JsonGenerationException;
Import org.codehaus.jackson.JsonParseException;
Import org.codehaus.jackson.map.JsonMappingException;
Import Org.codehaus.jackson.map.ObjectMapper;
Import org.codehaus.jackson.type.TypeReference;
public class Jacksontester {public static void main (String args[]) {Jacksontester tester = new Jacksontester ();
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 Object 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 (New File ("Student.json"), Userdatamap);
{//"STUDENTDATA1"://{//"student"://{//"name": "Mahesh",//"Age": 10
},//"name": "Mahesh Kumar",//"verified": false,//"Marks": [1,2,3]//}//}
Userdatamap = Mapper.readvalue (New File ("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();
}} class Student {private String name;
private int age;
Public Student () {} public String GetName () {return name;
public void SetName (String name) {this.name = name;
public int getage () {return age;
public void Setage (int age) {this.age = age;
Public String toString () {return ' Student [name: ' +name+ ', Age: ' + age+ '] ';
} class UserData {private Student Student;
private String name;
Private Boolean verified;
Private int[] marks;
Public UserData () {} public Student getstudent () {return Student;
public void Setstudent (Student Student) {this.student = Student;
Public String GetName () {return name;
public void SetName (String name) {this.name = name;
Public Boolean getverified () {return verified;
} public void setverified (Boolean verified) {this.verified = verified;
Int[] Getmarks () {return marks;
} public void Setmarks (int[] marks) { This.marks = marks;
}
}
Validating output
Use Javac to compile the following classes:
Copy Code code as follows:
C:\jackson_workspace>javac Jacksontester.java
Now run Jacksontester See the results:
Copy Code code as follows:
C:\jackson_workspace>java Jacksontester
Validating output
Student [Name:mahesh, Age:10]
mahesh Kumar
false
[1, 2, 3]