如何獲取動態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());
        }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章