[JSON_01] JSON 解析
0. 说明
介绍 && 测试 JSON
1. 介绍
XML 指可扩展标记语言(eXtensible Markup Language)。
XML 被设计用来传输和存储数据。
JSON: JavaScript Object Notation(JavaScript 对象表示法)
JSON 是轻量级的文本数据交换格式
JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。
JSON 对象由 名称/值对组成 名称和值之间用冒号 : 隔开
名称必须用双引号 " " 包含起来
值可以是任意 JavaScript 数据类型,字符串,布尔,数字 ,数组甚至是对象
不同的名称/值对之间用 逗号 , 隔开
示例
{"name":"Tom","age":25}
2. 测试 JSON
【2.1 JSON 文本示例]】
86913510 {"reviewPics":null,"extInfoList":null,"expenseList":null,"reviewIndexes":[2],"scoreList":[{"score":5,"title":"环境","desc":""},{"score":5,"title":"服务","desc":""},{"score":5,"title":"口味","desc":""}]}
【2.2 添加 Maven 依赖】
<!-- fastjson 依赖 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</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); } } } } }
且将新火试新茶,诗酒趁年华。