The serialization of objects in the Jackson Library of Java parsing and data generic binding _java

Source: Internet
Author: User
Tags object serialization serialization

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]

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.