JSON属性获取问题

{
                "KSBM":"0019",
                "CZY":"00096",
                "JTStatus":"0",
                "Bill":[{
                    "TKSL":"3",
                    "SPDJ":"0.95000000",
                    "JEHJ":"2.85000000",
                    "TFRQ":"2021-01-19 23:23:17",
                    "SPDID":"1003A11000000001K5MU"
                    },{
                    "TKSL":"3",
                    "SPDJ":"0.95000000",
                    "JEHJ":"2.85000000",
                    "TFRQ":"2021-01-19 23:23:17",
                    "SPDID":"1003A11000000001K5MU"
                    },......
                    ]
            }

 

我给他转化为Json对象 

JSONObject jo = JSON.parseObject(refundJSON);

我怎么遍历出所有数据

可能转换的有点麻烦了

我是通过json对象查出Bill集合size作为循环条件

通过Bill集合.get(i)获取当前循环的Bill,并转成json对象,然后再取Bill里面的值

转成map?你这还有个Bill数组啊

 

最好根据json转换成对象,然后根据需要自己操作数据。

   public static <T> T parseObject(String text, Class<T> clazz) {
        return parseObject(text, clazz, new Feature[0]);
    }

转成JSONObject 想要遍历的话,需要知道key的,如果转换成map,也要递归,最好就是转换成对象,然后判断处理什么都方便

JSONObject jo = JSON.parseObject(refundJSON);
forJSON(jo);


private void forJSON(JSONObject jobj) {
    for (String key : jo.keySet()) {
        if (jo.get(key) instanceof JSONArray) {
            JSONArray ja = jo.getJSONArray(key);
            for (Object o : ja) {
               JSONObject jo = (JSONObject) o;
               forJSON(jo);
            }
        } else {
            System.out.println("key:" + key + " value:" + jobj.getString(key));
        }
    }
}