//获取得到的json数据或者自定义的String数据
String json = "[{\"qlrmc\":\"张印志\",\"zjhm\":\"142733550606031\",\"status\":\"200\",\"message\":null,\"house_info\":[{\"bdcqzh\":\"晋(2021)祁县不动产证明第0002583号\",\"certtype\":\"其他\",\"cost\":\"0\",\"qlrmc\":\"高奋飞\",\"qlrzjh\":\"142430199108220819\",\"state\":\"未打印\",\"ywh\":\"202108200015_1 \",\"zsmc\":\"不动产证明\"}]}]";
//将json格式的数据转换为数组格式
JSONArray obj = JSONArray.parseArray(json);
System.out.println("obj" + obj);
//取值json中status的数据
String status = obj.getJSONObject(0).getString("status");
System.out.println("status" + status);
//取值json中house_info数组的数据
String house_info_string = obj.getJSONObject(0).getJSONArray("house_info").toString();
System.out.println("house_info_string====" + house_info_string);
输出的结果:
obj[{"house_info":[{"cost":"0","bdcqzh":"晋(2021)祁县不动产证明第0002583号","certtype":"其他","qlrmc":"高奋飞","zsmc":"不动产证明","qlrzjh":"142430199108220819","state":"未打印","ywh":"202108200015_1 "}],"qlrmc":"张印志","zjhm":"142733550606031","status":"200"}]
status200
house_info_string====[{"cost":"0","bdcqzh":"晋(2021)祁县不动产证明第0002583号","certtype":"其他","qlrmc":"高奋飞","zsmc":"不动产证明","qlrzjh":"142430199108220819","state":"未打印","ywh":"202108200015_1 "}]
如果house_info中数据有多个则利用list循环取出
//把house_info_string转换为数组形式开始取值
JSONArray objhouse = JSONArray.parseArray(house_info_string);
//根据objhouse长度循环取值
for (int a = 0; a < objhouse.size(); a++) {
JSONObject jsonObject = obj.getJSONObject(a);
JSONArray diya = jsonObject.getJSONArray("house_info");
//创建实体类,实体类里面与house_info里面元素最好一一对应
List<House_Info> hi1 = new ArrayList();
House_Info hii = new House_Info();
String hiii = diya.getString(a);
JSONObject hiiii = JSONObject.parseObject(hiii);
hii.setZSXLH(hiiii.getString("bdcqzh"));
hii.setSLBH(hiiii.getString("certtype"));
hii.setBDCZH(hiiii.getString("cost"));
hii.setDJRQ(hiiii.getString("qlrmc"));、
//遍历到hil中
hi1.add(hii);
}
这样json就解析出来了,还有各种组合json,用上述的方法大部分可以解决
我用的方法可能比较墨迹,欢迎大神们更新简洁的办法,我们一起进步