欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Gson如何序列化內(nèi)部類(lèi)

 更新時(shí)間:2020年11月02日 15:08:59   作者:一點(diǎn)教程  
本文介紹如何使用Gson對(duì)成員內(nèi)部類(lèi)及靜態(tài)內(nèi)部類(lèi)進(jìn)行序列化/反序列化,幫助大家更好的理解和使用gson庫(kù),感興趣的朋友可以了解下

1 Gson處理成員內(nèi)部類(lèi)

1.1 編寫(xiě)核心類(lèi)

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;
  }

  //成員內(nèi)部類(lèi)
  class Name {
    public String firstName;
    public String lastName;
  }
}

1.2 運(yùn)行測(cè)試

2 Gson處理靜態(tài)內(nèi)部類(lèi)

2.1 編寫(xiě)核心類(lèi)

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;
  }

  //靜態(tài)內(nèi)部類(lèi)
  static class Name {
    public String firstName;
    public String lastName;
  }
}

2.2 運(yùn)行測(cè)試

以上就是Gson如何序列化內(nèi)部類(lèi)的詳細(xì)內(nèi)容,更多關(guān)于gson 序列化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)分頁(yè)功能

    SpringBoot實(shí)現(xiàn)分頁(yè)功能

    這篇文章主要為大家詳細(xì)介紹了SpringBoot實(shí)現(xiàn)分頁(yè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 簡(jiǎn)單談?wù)凧VM、JRE和JDK的區(qū)別與聯(lián)系

    簡(jiǎn)單談?wù)凧VM、JRE和JDK的區(qū)別與聯(lián)系

    簡(jiǎn)單的說(shuō)JDK是用于開(kāi)發(fā)的而JRE是用于運(yùn)行Java程序的。JDK和JRE都包含了JVM,從而使得我們可以運(yùn)行Java程序。JVM是Java編程語(yǔ)言的核心并且具有平臺(tái)獨(dú)立性。
    2016-05-05
  • java如何連接數(shù)據(jù)庫(kù)executeUpdate()和executeQuery()

    java如何連接數(shù)據(jù)庫(kù)executeUpdate()和executeQuery()

    這篇文章主要介紹了java如何連接數(shù)據(jù)庫(kù)executeUpdate()和executeQuery(),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • eclipse實(shí)現(xiàn)可認(rèn)證的DH密鑰交換協(xié)議

    eclipse實(shí)現(xiàn)可認(rèn)證的DH密鑰交換協(xié)議

    這篇文章主要介紹了eclipse實(shí)現(xiàn)可認(rèn)證的DH密鑰交換協(xié)議,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • springboot對(duì)象為null的屬性在json中不顯示的解決

    springboot對(duì)象為null的屬性在json中不顯示的解決

    這篇文章主要介紹了springboot對(duì)象為null的屬性在json中不顯示的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java中request對(duì)象常用方法匯總

    Java中request對(duì)象常用方法匯總

    這篇文章主要為大家詳細(xì)匯總了Java中request對(duì)象的常用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • JAVA設(shè)計(jì)模式---單例模式你知道嗎

    JAVA設(shè)計(jì)模式---單例模式你知道嗎

    這篇文章主要給大家介紹了關(guān)于Java單例模式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • IDEA?maven項(xiàng)目依賴無(wú)法解析問(wèn)題

    IDEA?maven項(xiàng)目依賴無(wú)法解析問(wèn)題

    這篇文章主要介紹了IDEA?maven項(xiàng)目依賴無(wú)法解析問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 很詳細(xì)的Log4j配置步驟

    很詳細(xì)的Log4j配置步驟

    Log4J的配置文件(Configuration File)就是用來(lái)設(shè)置記錄器的級(jí)別、存放器和布局的,它可接key=value格式的設(shè)置或xml格式的設(shè)置信息。通過(guò)配置,可以創(chuàng)建出Log4J的運(yùn)行環(huán)境。
    2008-11-11
  • Java中線程休眠編程實(shí)例

    Java中線程休眠編程實(shí)例

    這篇文章主要介紹了Java中線程休眠編程實(shí)例,本文直接給出代碼實(shí)例,并對(duì)休眠方法做了一番講解,需要的朋友可以參考下
    2015-06-06

最新評(píng)論