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: