1 Gson处理成员内部类 1.1 编写核心类 MainApp: package com.yiidian.gson;import com.google.gson.Gson;public class MainApp { public static void main(String args[]) { Student student = new Student(); student.setRollNo(1); Student.N
          1 Gson处理成员内部类
1.1 编写核心类
MainApp:
package com.yiidian.gson;
import com.google.gson.Gson;
public class MainApp {
  public static void main(String args[]) {
    Student student = new Student();
    student.setRollNo(1);
    Student.Name name = student.new Name();
    name.firstName = "Mahesh";
    name.lastName = "Kumar";
    student.setName(name);
    Gson gson = new Gson();
    //序列化
    String jsonString = gson.toJson(student);
    System.out.println(jsonString);
    //反序列化
    student = gson.fromJson(jsonString, Student.class);
    System.out.println("Roll No: "+ student.getRollNo());
    System.out.println("First Name: "+ student.getName().firstName);
    System.out.println("Last Name: "+ student.getName().lastName);
    String nameString = gson.toJson(name);
    System.out.println(nameString);
    name = gson.fromJson(nameString,Student.Name.class);
    System.out.println(name.getClass());
    System.out.println("First Name: "+ name.firstName);
    System.out.println("Last Name: "+ name.lastName);
  }
}
class Student {
  private int rollNo;
  private Name name;
  public int getRollNo() {
    return rollNo;
  }
  public void setRollNo(int rollNo) {
    this.rollNo = rollNo;
  }
  public Name getName() {
    return name;
  }
  public void setName(Name name) {
    this.name = name;
  }
  //成员内部类
  class Name {
    public String firstName;
    public String lastName;
  }
}
1.2 运行测试

2 Gson处理静态内部类
2.1 编写核心类
MainApp:
package com.yiidian.gson;
import com.google.gson.Gson;
public class MainApp {
  public static void main(String args[]) {
    Student student = new Student();
    student.setRollNo(1);
    Student.Name name = new Student.Name();
    name.firstName = "Mahesh";
    name.lastName = "Kumar";
    student.setName(name);
    Gson gson = new Gson();
    String jsonString = gson.toJson(student);
    System.out.println(jsonString);
    student = gson.fromJson(jsonString, Student.class);
    System.out.println("Roll No: "+ student.getRollNo());
    System.out.println("First Name: "+ student.getName().firstName);
    System.out.println("Last Name: "+ student.getName().lastName);
    String nameString = gson.toJson(name);
    System.out.println(nameString);
    name = gson.fromJson(nameString,Student.Name.class);
    System.out.println(name.getClass());
    System.out.println("First Name: "+ name.firstName);
    System.out.println("Last Name: "+ name.lastName);
  }
}
class Student {
  private int rollNo;
  private Name name;
  public int getRollNo() {
    return rollNo;
  }
  public void setRollNo(int rollNo) {
    this.rollNo = rollNo;
  }
  public Name getName() {
    return name;
  }
  public void setName(Name name) {
    this.name = name;
  }
  //静态内部类
  static class Name {
    public String firstName;
    public String lastName;
  }
}
2.2 运行测试

以上就是Gson如何序列化内部类的详细内容,更多关于gson 序列化的资料请关注易盾网络其它相关文章!
