当前位置: 移动技术网 > IT编程>开发语言>Java > Gson如何序列化内部类

Gson如何序列化内部类

2020年11月02日  | 移动技术网IT编程  | 我要评论
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 运行测试

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 序列化的资料请关注移动技术网其它相关文章!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网