Complex Bean Serialization
Google-gson is a java library from Google for encoding and decoding JSON text.
Get the latest binaries from
http://code.google.com/p/google-gson/ .
The following example shows converting a Complex bean to JSON string.
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 ComplexBeanSerializationTest {
/**
* @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 ) ;
}
}
It gives the following output,
{
"name": "MPC",
"subjects": [
"Maths",
"Physics",
"Chemistry"
],
"students": [
{
"firstName": "Sriram",
"lastName": "Kasireddi",
"age": 2,
"hobby": "Singing",
"dob": "May 6, 2010 12:00:00 AM"
},
{
"firstName": "Sudhakar",
"lastName": "Kasireddi",
"age": 29,
"hobby": "Singing",
"dob": "Sep 6, 1982 12:00:00 AM"
}
]
}