1.导入Json格式化依赖
<!-- 2020/12/16日最新 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
2.示例Json数值(String类型)
String json = "{'Code':'123','Data':{'CurrentPage':1,'List':{'ProductInfo':[{'GmtCreate':1606959217000,'Description':'产品1描述'},{'GmtCreate':1606959190000,'Description':'产品2描述'}]}}}";
直观点如下:
{
'Code': '123',
'Data': {
'CurrentPage': 1,
'List': {
'ProductInfo': [
{
'GmtCreate': 1606959217000,
'Description': '产品1描述'
},
{
'GmtCreate': 1606959190000,
'Description': '产品2描述'
}
]
}
}
}
3.转换取值
String json = "{'Code':'123','Data':{'CurrentPage':1,'List':{'ProductInfo':[{'GmtCreate':1606959217000,'Description':'产品1描述'},{'GmtCreate':1606959190000,'Description':'产品2描述'}]}}}";
// 先把String对象转换成Json对象
JSONObject object= JSONObject.parseObject(json);
// 取最外层的Code
System.out.println(object.get("Code"));
// 取中间层的CurrentPage 注意Data下是Object 所以用getJSONObject("xx")
System.out.println(object.getJSONObject("Data").get("CurrentPage"));
/*
取ProductInfo里面的数组值 例如第一个Description
ProductInfo下面是JsonArray 所以要使用getJSONArray("xx")
getJSONObject(0)取得是ProductInfo下面第一个JsonObject对象
get("Key")根据key即可获取到具体的值
*/
System.out.println(object.getJSONObject("Data").getJSONObject("List").getJSONArray("ProductInfo").getJSONObject(0).get("Description"));
4.结果
123
1
产品1描述
5.区别
- JsonObject是一个{}包裹起来的一个对象(Object)
- JsonArray则是[]包裹起来的一个数组(Array)
6.原文链接
传送门:点我