欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Gson如何序列化内部类

程序员文章站 2022-10-29 12:50:44
1 gson处理成员内部类1.1 编写核心类mainapp:package com.yiidian.gson;import com.google.gson.gson;public class main...

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 运行测试

Gson如何序列化内部类

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如何序列化内部类的详细内容,更多关于gson 序列化的资料请关注其它相关文章!