Complex Bean DeSerialization

Google-gson is a java library from Google for encoding and decoding JSON text. Get the latest binaries fromhttp://code.google.com/p/google-gson/. The following example shows converting a Complex bean to JSON string and vice versa.


package com.bethecoder.tutorials.google_gson.common;

import java.util.Date;

public class Student {
  private String firstName;
  private String lastName;
  private int age;
  private String hobby;
  private Date dob;

  public Student(String firstName, String lastName, int age, String hobby,
      Date dob) {
    super();
    this.firstName = firstName;
    this.lastName = lastName;
    this.age = age;
    this.hobby = hobby;
    this.dob = dob;
  }
  
  public String getFirstName() {
    return firstName;
  }
  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }
  public String getLastName() {
    return lastName;
  }
  public void setLastName(String lastName) {
    this.lastName = lastName;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
  public String getHobby() {
    return hobby;
  }

  public void setHobby(String hobby) {
    this.hobby = hobby;
  }
  public Date getDob() {
    return dob;
  }
  public void setDob(Date dob) {
    this.dob = dob;
  }

  public String toString() {
    return "Student[ " +
      "firstName = " + firstName +
      ", lastName = " + lastName +
      ", age = " + age +
      ", hobby = " + hobby +
      ", dob = " + dob +
      " ]";
  }
}

package com.bethecoder.tutorials.google_gson.common;

import java.util.ArrayList;
import java.util.List;

public class StudentClass {

  private String name;
  private List<String> subjects = new ArrayList<String>();
  private List<Student> students = new ArrayList<Student>();
  
  public StudentClass(String name) {
    super();
    this.name = name;
  }

  public String getName() {
    return name;
  }
  
  public void setName(String name) {
    this.name = name;
  }
  
  public List<String> getSubjects() {
    return subjects;
  }
  
  public void setSubjects(List<String> subjects) {
    this.subjects = subjects;
  }
  
  public List<Student> getStudents() {
    return students;
  }
  
  public void setStudents(List<Student> students) {
    this.students = students;
  }
  
}


package  com.bethecoder.tutorials.google_gson.tests;

import  java.util.Arrays;
import  java.util.Date;

import  com.bethecoder.tutorials.google_gson.common.Student;
import  com.bethecoder.tutorials.google_gson.common.StudentClass;
import  com.google.gson.Gson;
import  com.google.gson.GsonBuilder;

public class  ComplexBeanDeSerializationTest  {

   /**
    @param  args
    */
   public static  void  main ( String []  args ) {
     Gson gson =  new  GsonBuilder () .setPrettyPrinting () .create () ;

     StudentClass stdCls =  new  StudentClass ( "MPC" ) ;
     stdCls.getSubjects () .addAll ( Arrays.asList ( "Maths" "Physics" "Chemistry" )) ;
     stdCls.getStudents () .add (
         new  Student ( "Sriram" "Kasireddi" 2 "Singing" new  Date ( 110 4 6 ))) ;  
     stdCls.getStudents () .add (
         new  Student ( "Sudhakar" "Kasireddi" 29 "Singing" new  Date ( 82 8 6 ))) ;  
    
     String jsonStr = gson.toJson ( stdCls ) //Serialize
     System.out.println ( jsonStr ) ;
    
     stdCls = gson.fromJson ( jsonStr, StudentClass. class ) //Deserialize
     System.out.println ( "Name : "  + stdCls.getName ()) ;
     System.out.println ( "Subjects : "  + stdCls.getSubjects ()) ;
     System.out.println ( "Students : "  + stdCls.getStudents ()) ;
   }

}




output:


你可能感兴趣的:(bean,json,String,library,encoding,output)