In this article, we will discuss how to serialization/deserialization of classes having inner classes.
Nested Inner Class example
Let's see an example of serialization/de-serialization of class with an inner class in action.
package net.javaguides.gson;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
/**
*
* @author Ramesh Fadatare
*
*/
public class GSONNestedClassesExample {
public static void main(String[] args) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
OuterClass outerClass = new OuterClass();
outerClass.setValue1("value1");
outerClass.setValue2("value2");
OuterClass.InnerClass innerClass = outerClass.new InnerClass();
innerClass.value3 = "value3";
innerClass.value4 = "value4";
outerClass.setInnerClass(innerClass);
String jsonStr = gson.toJson(outerClass);
System.out.println(jsonStr);
}
}
class OuterClass {
private String value1;
private String value2;
private InnerClass innerClass;
public String getValue1() {
return value1;
}
public void setValue1(String value1) {
this.value1 = value1;
}
public String getValue2() {
return value2;
}
public void setValue2(String value2) {
this.value2 = value2;
}
public void setInnerClass(InnerClass innerClass) {
this.innerClass = innerClass;
}
public InnerClass getInnerClass() {
return innerClass;
}
class InnerClass {
public String value3;
public String value4;
}
}
Output:
{
"value1": "value1",
"value2": "value2",
"innerClass": {
"value3": "value3",
"value4": "value4"
}
}
Nested Static Inner Class Example
Let's see an example of serialization/de-serialization of class with a static inner class in action.
package net.javaguides.gson;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
/**
*
* @author Ramesh Fadatare
*
*/
public class GSONNestedClassesExample {
public static void main(String[] args) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
OuterClass outerClass = new OuterClass();
outerClass.setValue1("value1");
outerClass.setValue2("value2");
OuterClass.InnerClass innerClass = new OuterClass.InnerClass();
innerClass.value3 = "value3";
innerClass.value4 = "value4";
outerClass.setInnerClass(innerClass);
String jsonStr = gson.toJson(outerClass);
System.out.println(jsonStr);
}
}
class OuterClass {
private String value1;
private String value2;
private InnerClass innerClass;
public String getValue1() {
return value1;
}
public void setValue1(String value1) {
this.value1 = value1;
}
public String getValue2() {
return value2;
}
public void setValue2(String value2) {
this.value2 = value2;
}
public void setInnerClass(InnerClass innerClass) {
this.innerClass = innerClass;
}
public InnerClass getInnerClass() {
return innerClass;
}
static class InnerClass {
public String value3;
public String value4;
}
}
Output:
{
"value1": "value1",
"value2": "value2",
"innerClass": {
"value3": "value3",
"value4": "value4"
}
}
Comments
Post a Comment
Leave Comment