详细:JSON解析教程
一、JSON
简介:JSON(JavaScript Object Notation) JS对象简谱 , 是一种轻量级的数据交换格式。
1.对象格式
同样是描述一个对象
1 一本书 2 书名 金苹果 3 简介 种苹果
java:
1 class book{ 2 private String name; 3 private String info; 4 get/set... 5 } 6 Book b = new Book(); 7 b.setName("金苹果"); 8 b.setInfo("种苹果"); 9 ...
js:
1 var b = new Object(); 2 b.name = "金苹果"; 3 b.info = "种苹果";
XML:
1 <book> 2 <name>金苹果</name> 3 <info>种苹果</info> 4 </book>
JSON:
1 { 2 "name":"金苹果", 3 "info":"种苹果" 4 }
JSON对象格式:
一个对象,由一个大括号表示。
括号中通过键值对来描述对象的属性(可以理解为,大括号中,包含的是一个个的键值对)
格式:
键与值之间使用冒号连接,多个键值对之间使用逗号分隔。
键值对的键应使用引号引住 (通常Java解析时,键不使用引号会报错。而JS能正确解析)
键值对的值, 可以是JS中的任意类型的数据
数组格式
在JSON格式中可以与对象互相嵌套
1 [元素1,元素2,元素3...]
2.对象格式举例
1 { 2 "name":"小李", 3 "age":18, 4 "pengyou":["张三","李四","王二","麻子",{ 5 "name":"野马老师", 6 "info":"像匹野马一样狂奔在技术钻研的道路上" 7 }], 8 "heihei":{ 9 "name":"大长刀", 10 "length":"40m" 11 } 12 }
二、Java与JSON
做什么?
将Java中的对象快速的转换为JSON格式的字符串。
将JSON格式的字符串转换为Java的对象。
1.Gson
- 将对象转换为JSON字符串
转换JSON字符串的步骤:
1. 引入JAR包(点击下载)
2. 在需要转换JSON字符串的位置编写如下代码即可:
1 String json = new Gson().toJSON(要转换的对象);
案例
1 Book b = BookDao.find(); 2 String json = new Gson().toJson(b); 3 System.out.println(json);
- 将JSON字符串转换为对象
1. 引入JAR包
2. 在需要转换Java对象的位置, 编写如下代码:
1 对象 = new Gson().fromJson(JSON字符串,对象类型.class);
案例:
1 String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"张三 \",\"info\":\"嘿嘿嘿嘿嘿嘿\",\"price\":198.0}"; 2 Book book = new Gson().fromJson(json, Book.class); 3 System.out.println(book);
2.FastJson
- 将对象转换为JSON字符串
转换JSON字符串的步骤:
1. 引入JAR包
2. 在需要转换Java对象的位置, 编写如下代码:
1 String json=JSON.toJSONString(要转换的对象);
案例:
1 Book b = BookDao.find(); 2 String json=JSON.toJSONString(b); 3 System.out.println(json);
- 将JSON字符串转换为对象
1. 引入JAR包
2. 在需要转换Java对象的位置, 编写如下代码:
1 类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或者
1 List<类型> list=JSON.parseArray(JSON字符串,类型.class);
案例:
1 String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"张三 \",\"info\":\"嘿嘿嘿嘿嘿嘿\",\"price\":198.0}"; 2 Book book = JSON.parseObject(json, Book.class); 3 System.out.println(book);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~