使用JSONObject
1、需要解析的json串
{ "retCode":0, "retMSg":"成功", "data":[ { "name":"李雷", "id":"001", "score":{ "Chinese":"80", "Math":"95" }, "schoolInfo": [ { "School_name": "清华" }, { "School_name": "北大" } ], }, { "name":"韩梅梅", "id":"002", "score":{ "Chinese":"90", "Math":"80" }, "schoolInfo": [ { "School_name": "清华" }, { "School_name": "北大" } } ] }
json内部格式:
1 []中括号代表的是一个数组
2 {}大括号代表的是一个对象 在一个对象中还可能包含对象的属性 属性也可能是另外一个类
3 双引号“”表示的是属性值
4 冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。
以上述代码为例,第一层是一个花括号的{}Json数组,json数组中包含retCode,retMSg以及data三个属性
第二层是data的JsonArray属性,每个花括号代表一个对象,每个对象中有name,id,score,schoolInfo四个属性。
第三层其中score属性下包含一个类,类中包含Chinese和Math两个属性。
schoolInfo是一个JsonArray数组,里面有School_name这个属性
Json提供的方法
JSONObject系统自带的解析方式解析,我们先来JSONObject(系统自带的类)类中的方法
其中JsonObjcet常用的构造方法是
二、Json数组的解析
对result中的每一个值进行取到以及解析
解析前准备工作:
可以将String类型的result转为Json数组类型
三、Json解析过程
import com.alibaba.fastjson.Json; import com.alibaba.fastjson.JsonArray; import com.alibaba.fastjson.JsonObject; //转为jsonObject类型 JsonObject jsonObject=JSONObject.parseOject(result); //取属性值 String returnCode=jsonObject.getString("retCode"); String returnMsg=jsonObject.getString("retMSg"); //取数组值 JSONArray parseArray=jsonObject.getJsonArray("data"); //对数组内部进行处理 for(int i=0;i<parseArray.size();i++){ //和常规数组get(i)是一样的 只不过是JSONObject类型 //eachObject是数组中的每一个类{},因为类包含的属性是相同的,所以相当于循环处理的是这部分 JsonObject eachObject=parseArray.getJSONObject(i); //第二层的属性 String name=eachObject.getString("name"); String id=eachObject.getString("id"); //处理第三层的JSONObject对象sorce JSONObject sorceObject=eachObject.getJSONObject("sorce"); //处理第三层JSONObject对象sorce内的属性 String Chinese=sorceObject.getString("Chinese"); String Math=sorceObject.getString("Math"); //处理第三层JSONObject对象内的schoolInfo属性 JSONArray schoolInfoArray = eachObject.getJSONArray("schoolInfo"); for (int j = 0; j < schoolInfoArray.length(); j++) { JSONObject schoolInfojson = schoolInfoArray.getJSONObject(j); String schoolName = schoolInfojson.getString("School_name"); } } }
来源:https://blog.csdn.net/qq_44754976/article/details/121170951 ,感谢
来源: https://blog.csdn.net/oman001/article/details/79063278,感谢
标签:School,Java,name,Json,json,数组,解析,属性 From: https://www.cnblogs.com/ychun/p/18311057