欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解析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级,所以回答的很自信.
我那个"是"字 ,从未读变为已读,到后来的没有回复…
吾生也有涯,而知也无涯.
加油,奥利给!