[JSON_01] JSON 解析
2024-08-31 01:31:54
0. 说明
介绍 && 测试 JSON
1. 介绍
XML 指可扩展标记语言(eXtensible Markup Language)。
XML 被设计用来传输和存储数据。
JSON: JavaScript Object Notation(JavaScript 对象表示法)
JSON 是轻量级的文本数据交换格式
JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。
JSON 对象由 名称/值对组成 名称和值之间用冒号 : 隔开
名称必须用双引号 " " 包含起来
值可以是任意 JavaScript 数据类型,字符串,布尔,数字 ,数组甚至是对象
不同的名称/值对之间用 逗号 , 隔开
示例
{"name":"Tom","age":}
2. 测试 JSON
【2.1 JSON 文本示例]】
{"reviewPics":null,"extInfoList":null,"expenseList":null,"reviewIndexes":[],"scoreList":[{"score":,"title":"环境","desc":""},{"score":,"title":"服务","desc":""},{"score":,"title":"口味","desc":""}]}
【2.2 添加 Maven 依赖】
<!-- fastjson 依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.</version>
</dependency>
【2.3 TestJson.java】
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.junit.Test; public class TestJson { @Test
public void testJson() { // JSON 文本 {"name":"Tom","age":25}
String text = "{\"name\":\"Tom\",\"age\":25}"; // 将 JSON 转化为 JSONObject 格式
JSONObject jo = JSON.parseObject(text); // 通过 Key 获取 Value
Object name = jo.get("name");
Object age = jo.get("age");
System.out.println(name + ":" + age);
} @Test
public void testJsonArray() {
// JSON 文本 {"person":[{"name":"Tomas","friends":["John","Jim"],"age":18},{"name":"Tom","friends":["Amy","Alice"],"age":28}]}
String line = "{\"person\":[{\"name\":\"Tomas\",\"friends\":[\"John\",\"Jim\"],\"age\":18},{\"name\":\"Tom\",\"friends\":[\"Amy\",\"Alice\"],\"age\":28}]}"; // 将 JSON 转化为 JSONObject 格式
JSONObject jo = JSON.parseObject(line); // 通过 Key 获取 Value
JSONArray jsonArray = jo.getJSONArray("person"); for (Object object : jsonArray) {
// 将 JSON 转化为 JSONObject 格式
JSONObject jo2 = JSON.parseObject(object.toString());
if (jo2.get("name").toString().equals("Tom")) {
JSONArray jsonArray2 = jo2.getJSONArray("friends");
for (Object object2 : jsonArray2) {
System.out.println(object2);
}
}
}
}
}
最新文章
- Android 缓存
- ABP之依赖注入
- SpringMVC文件上传下载
- iOS 笔记
- BZOJ3931 [CQOI2015]网络吞吐量(最大流)
- JS的基础类型与引用类型
- SQL 查看数据库表的容量大小
- DFS-HDU 1312 -Red and Black
- ActiveMQ讯息传送机制以及ACK机制详解
- Windows Server Backup 备份Hypver-V VM
- 解决IE6下不支持 png24的透明图片问题
- sql date 的精度问题
- 树莓派连接GPS模块
- zookeeper配置管理+集群管理实战
- 【vue】vue +element 搭建项目,实现实时输入效果时停止输入后发送请求
- c# WPF RichTextBox 文字颜色
- Python学习day2 while循环&;格式化输出&;运算符
- Kettle 和数据建模的几个学习资料
- javascript数组(五)
- leetCode(寻找峰值)-二分查找
热门文章
- Django--视图函数views
- spring cloud+.net core搭建微服务架构:Api网关(三)
- error: device unauthorized —— android studio 链接不上虚拟机
- Android的Touch事件分发机制简单探析
- walle多渠道打包+Tinker(bugly)热更新集成+360加固(乐固)
- Nexus安装、使用说明 (转)
- git第七节---git merge和git rebase
- BBWebImage 设计思路
- [HEOI2017] 寿司餐厅 + 最大权闭合子图的总结
- Hyperledger Fabric密码模块系列之BCCSP(三)