历史上的今天 首页 传统节日 24节气 企业成立时间 今日 问答 北京今日 重庆今日 天津今日 上海今日 深圳今日 广州今日 东莞今日 武汉今日 成都今日 澳门今日 乌鲁木齐今日 呼和浩特今日 贵阳今日 昆明今日 长春今日 哈尔滨今日 沈阳今日 西宁今日 兰州今日 西安今日 太原今日 青岛今日 合肥今日 南昌今日 长沙今日 开封今日 洛阳今日 郑州今日 保定今日 石家庄今日 温州今日 宁波今日 杭州今日 无锡今日 苏州今日 南京今日 南宁今日 佛山今日 中文/English
首页 > 问答 > 如何使用Gson处理包含嵌套对象和集合类型的复杂JSON数据序列化?

如何使用Gson处理包含嵌套对象和集合类型的复杂JSON数据序列化?

虫儿飞飞

问题更新日期:2026-01-26 00:33:02

问题描述

怎样使用Gson对包含嵌套对象和集合类型的复杂JSON数据进行序列化呢?1.添加Gson依赖若
精选答案
最佳答案
怎样使用Gson对包含嵌套对象和集合类型的复杂JSON数据进行序列化呢?

1.添加Gson依赖

若使用Maven项目,在

plaintext
复制
pom.xml
中添加以下依赖:

xml
复制
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.8</version> </dependency>

若为Gradle项目,在

plaintext
复制
build.gradle
里添加:

groovy
复制
implementation'com.google.code.gson:gson:2.8.8'

2.定义Java类结构

假设我们有如下复杂JSON数据:

json
复制
{ "name":"John", "age":30, "address":{ "street":"123MainSt", "city":"NewYork" }, "hobbies": }

对应的Java类如下:

java
复制
classPerson{ Stringname; intage; Addressaddress; List<String>hobbies; } classAddress{ Stringstreet; Stringcity; }

3.进行序列化操作

java
复制
importcom.google.gson.Gson; importjava.util.Arrays; importjava.util.List; publicclassMain{ publicstaticvoidmain(Stringargs){ Addressaddress=newAddress(); address.street="123MainSt"; address.city="NewYork"; List<String>hobbies=Arrays.asList("reading","swimming"); Personperson=newPerson(); person.name="John"; person.age=30; person.address=address; person.hobbies=hobbies; Gsongson=newGson(); Stringjson=gson.toJson(person); System.out.println(json); } }

在上述代码中,我们首先创建了

plaintext
复制
Person
对象,包含了嵌套的
plaintext
复制
Address
对象和
plaintext
复制
hobbies
集合。然后使用
plaintext
复制
Gson
plaintext
复制
toJson
方法将
plaintext
复制
Person
对象序列化为JSON字符串。

4.处理更复杂嵌套

若JSON中有多层嵌套或泛型集合,同样可以按照上述步骤处理。例如,

plaintext
复制
Person
类中有一个
plaintext
复制
List<Address>

java
复制
classPerson{ Stringname; intage; List<Address>addresses; }

在进行序列化时,依然使用

plaintext
复制
Gson
plaintext
复制
toJson
方法:

java
复制
importcom.google.gson.Gson; importjava.util.Arrays; importjava.util.List; publicclassMain{ publicstaticvoidmain(Stringargs){ Addressaddress1=newAddress(); address1.street="123MainSt"; address1.city="NewYork"; Addressaddress2=newAddress(); address2.street="456ElmSt"; address2.city="LosAngeles"; List<Address>addresses=Arrays.asList(address1,address2); Personperson=newPerson(); person.name="John"; person.age=30; person.addresses=addresses; Gsongson=newGson(); Stringjson=gson.toJson(person); System.out.println(json); } }

通过以上步骤,我们就可以使用Gson处理包含嵌套对象和集合类型的复杂JSON数据序列化。

友情链接: