什么是JSON(JavaScript Object Notation)
JSON和xml一样都是数据交换格式。JSON是轻量级的,相比xml占带宽小、效率高
JSON只有两种结构:对象和数组
/*JSON对象,{}修饰,里面为 key1 : value1, key2 : value2形式,key和value可以是数字、字符串、对象和数组*/
json object{ "name" : "ymk" }
/*JSON数组,[]修饰,里面可以为数字、字符串、对象和数组*/
json Array[ json object ]
JSON常用解析框架有:Gson(谷歌)、JackJson(SpringMVC自带)、FastJson(阿里)、LoganSquare...
FastJson组装JSON
引入jar包
<!-- 添加json包 -->
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
JSON组装Demo
public static void main(String[] args) {
// 1. 创建JSON对象
JSONObject jsonObject = new JSONObject();
// 2. 创建JSON数组
JSONArray setisArray = new JSONArray();
// 3. 内部对象装入JSON数组
JSONObject bean1 = new JSONObject();
bean1.put("name", "ymk");
bean1.put("url", "www.ymk.com");
setisArray.add(bean1);
JSONObject bean2 = new JSONObject();
bean2.put("name", "kmy");
bean2.put("url", "www.kmy.com");
setisArray.add(bean2);
// 4. JSON数组装入JSON对象
jsonObject.put("setis", setisArray);
// 5. 转换成JSON字符串
System.out.println(jsonObject.toJSONString());
}
组装后JSON的对象
{"setis":[{"name":"ymk","url":"www.ymk.com"},{"name":"kmy","url":"www.kmy.com"}]}
FastJson解析JSON
解析Demo,对字符串要进行转义
// 转义的JSON代码
private static String JSONSTR = "{\"setis\": [{\"name\": \"ymk\",\"url\": \"www.ymk.com\"},{\"name\": \"kmy\",\"url\": \"www.kmy.com\"}]}";
public static void main(String[] args) {
// 1. 将json字符串转成json对象
JSONObject jsonObject = new JSONObject();
// 获取json对象
JSONObject parseObject = jsonObject.parseObject(JSONSTR);
// 获取json数组
JSONArray sitesArrays = parseObject.getJSONArray("setis");
for (Object object : sitesArrays) {
JSONObject jsObject = (JSONObject) object;
String name = jsObject.getString("name");
String url = jsObject.getString("url");
System.out.println(name + "----" + url);
}
}
解析后内容
ymk----www.ymk.com
kmy----www.kmy.com
参考:蚂蚁课堂