一、使用 Gson 解析
GSON 是 Google提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库,可以快速的将一个 Json 字符转成一个 Java 对象,或者将一个 Java 对象转化为 Json 字符串。
gson 在 github 上开源地址:https://github.com/google/gson
二进制开发包下载:gson 二进制开发包下载地址:https://search.maven.org/artifact/com.google.code.gson/gson/2.8.5/jar
1、导入 gson 依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
2、JavaBean 与 json 的互转
1 @Test
2 public void test1() {
3 Person person = new Person(1, "蔡晓磊");
4 // 创建 Gson 对象实例
5 Gson gson = new Gson();
6
7 // toJson 方法可以把 java 对象转换成为 json 字符串
8 String personStr = gson.toJson(person);
9 System.out.println("personStr = " + personStr);
10
11 // fromJson 把 json 字符串转换回 Java 对象
12 // 第一个参数是 json 字符串
13 // 第二个参数是转换回去的 Java 对象类型
14 Person personJson = gson.fromJson(personStr, Person.class);
15 System.out.println("personJson = " + personJson);
16 }
3、List 和 json 的互转
1 @Test
2 public void test2() {
3
4 List<Person> personList = new ArrayList<>();
5
6 personList.add(new Person(1, "张三"));
7 personList.add(new Person(2, "李四"));
8
9 // 创建 Gson 对象实例
10 Gson gson = new Gson();
11
12 // toJson 把 List 转换为 json 字符串
13 String personStr = gson.toJson(personList);
14 System.out.println("personStr = " + personStr);
15
16 //List<Person> jsonList = gson.fromJson(personStr, new PersonListType().getType());
17 List<Person> jsonList = gson.fromJson(personStr, new TypeToken<List<Person>>(){}.getType());
18 System.out.println(jsonList);
19 System.out.println(jsonList.get(0));
20 }
4、map 和 json的互转
1 @Test
2 public void test3() {
3
4 Map<Integer, Person> map = new HashMap<>();
5
6 map.put(1, new Person(1, "张三"));
7 map.put(2, new Person(2, "李四"));
8
9 // 创建 Gson 对象实例
10 Gson gson = new Gson();
11
12 // toJson 把 map 集合转换成为 json 字符串
13 String personStr = gson.toJson(map);
14 System.out.println("personStr = " + personStr);
15
16 //HashMap<Integer, Person> personMap = gson.fromJson(personStr, new PersonMapType().getType());
17 HashMap<Integer, Person> personMap = gson.fromJson(personStr, new TypeToken<Map<Integer, Person>>(){}.getType());
18 System.out.println(personMap);
19 System.out.println(personMap.get(1));
20 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
2020-08-17 Java 之 关键字与标识符
2019-08-17 JavaScript 之 String 对象
2019-08-17 JavaScript 之 基本包装类型
2019-08-17 JavaScript 之 Array 对象