json最外层符号[]是数组,应该用JsonArray来解析:
JSONArray jsona =(JSONArray)JSONArray.parse(jsonn);
获取jsona 中的元素
for(Object o : jsona){
JSONObject jsonObject = (JSONObject) o;
System.out.println(jsonObject.get("Id"));
}
或者
JSONArray jsonArray = (JSONArray) JSONArray.parse(resp);
System.out.println("通过实体id浏览文件返回信息" + jsonArray.toJSONString());
if (ObjectUtils.isNotEmpty(jsonArray)) {
JSONObject objectJson = jsonArray.getJSONObject(0);
Object stbh = objectJson.get("stbh");
System.out.println("获取实体编号" + stbh);
Object tempUrl = objectJson.get("tempUrl");
System.out.println("获取文件访问地址" + tempUrl);
}
json最外层是{},就用JsonObject来解析:
JSONObject jsonObject = JSONObject.parseObject(jsonn);
获取 jsonObject 中的元素
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"));
JsonArray则是[]包裹起来的一个数组(Array)
JsonObject是一个{}包裹起来的一个对象(Object)