如何获取动态key的json数据

json数据
{
    "orderStatus": "30",
    "orderSn": "20158888",
    "childOrder": {
        "VIP123456": {
            "orderStatus": "30",
            "logisticsName": "yuantong",
            "logisticsTrackingNo": "1992101699999",
            "skus": {
                "HENU002": {
                    "num": "2"
                },
                "HENU005": {
                    "num": "2"
                }
            }
        }
    }
}


解决方案:

public static void main(String[] args) throws Exception {
        HtCallBackVO vo = new HtCallBackVO();
        String postData = "{\"orderStatus\":\"30\",\"orderSn\":\"20158888\",\"childOrder\":{\"VIP123457\":{\"orderStatus\":\"30\"," +
                "\"logisticsName\":\"yuantong1\",\"logisticsTrackingNo\":\"1992101699999\",\"skus\":{\"HENU002\":{\"num\":\"2\"}," +
                "\"HENU005\":{\"num\":\"2\"}}},\"VIP123456\":{\"orderStatus\":\"30\",\"logisticsName\":\"yuantong\",\"logisticsTrackingNo\":" +
                "\"1992101699999\",\"skus\":{\"HENU002\":{\"num\":\"2\"},\"HENU005\":{\"num\":\"2\"}}}}}";
            JSONObject jsonObject = JSONObject.parseObject(postData);
            String orderCode = jsonObject.getString("orderSn");
            List<ChildOrder> childOrders = new ArrayList<ChildOrder>();

            JSONObject jsonObject2 = jsonObject.getJSONObject("childOrder");
            for (String key : jsonObject2.keySet()) {
                ChildOrder childOrder = new ChildOrder();
                JSONObject subJsonObj = JSONObject.parseObject(jsonObject2.getString(key));
                String orderStatus = subJsonObj.getString("orderStatus");
                String logisticsName = subJsonObj.getString("logisticsName");
                String logisticsTrackingNo = subJsonObj.getString("logisticsTrackingNo");
                childOrder.setLogisticsName(logisticsName);
                childOrder.setLogisticsTrackingNo(logisticsTrackingNo);
                childOrder.setOrderStatus(orderStatus);
                childOrder.setHtOrderCode(key);
                childOrders.add(childOrder);
            }
            for (ChildOrder childOrder:childOrders){
                System.out.println(childOrder.toString());
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值