解析map<user,user>key,value都为对象为json
程序员文章站
2024-01-30 20:26:10
...
需求:获取下列数据中的某个字段的值
{"bxxxxMap": {
{
"diMapping": null,
"dyModel": false,
"exRId": "",
"for": "",
"form": "213",
"formS": "",
"formSu": "",
"formU": "",
"formId": "123",
"formDilId": "123",
"forDate": "2020-09-18",
"dimTeMap": {
"6b8ce3189ebe11e88b": "6e589eb2dd9f11e8b5",
"bf90650ed06f11ea9": "f68e0313d07e11ea97ba"
},
"butAmo": 10,
"ocAmnt": 0,
"actlAnt": 0,
"buetQu": 0,
"ocyQuity": 0,
"actlQtity": 0,
"extdPams": null
}: {
"checkMsg": "未型!",
"checkStatus": "NO_MODEL",
"exceedForbid": 0,
"exceedWarn": 0
}
}}
将上面数据放在 在线解析json 里面会报错, 但是实际上上面数据真的是key,value类型的数据;
解析:
思路:获取map中的key,遍历;获取map中的value,遍历;
//该map为上面数据
JSONObject billDetailBudgetCheckResultMap = (JSONObject) parse.get("data");
JSONObject data1 = (JSONObject) billDetailBudgetCheckResultMap.get("billDetailBudgetCheckResultMap");
//处理key
Set<String> strings1 = data1.keySet();
for (Object s : strings1) {
JSONObject parse1 = (JSONObject) JSONObject.parse(s.toString());
System.out.println("parse1 = " + parse1);
JSONObject data = (JSONObject) parse1.get("data");
if (data!=null){
JSONObject billDetailBudgetCheckResultMap1 = (JSONObject) data.get("billDetailBudgetCheckResultMap");
System.out.println("billDetailBudgetCheckResultMap1 = " + billDetailBudgetCheckResultMap1);
}
}
//处理value,略
记得在Boss上被问到过,所有的未知层级的对象都可以转成json吗? 我那时候的回答为:是的.
那时候做过组织架构相关的开发工作,层级为10级,所以回答的很自信.
我那个"是"字 ,从未读变为已读,到后来的没有回复…
吾生也有涯,而知也无涯.
加油,奥利给!