如何解析此JSON以提取orderinfo JsonArray

时间:2014-12-29 10:46:15

标签: java

我有以下显示的JSON

{
    "vendors": {
        "T1": [
            {
                "name": "Inorbit_Vendor 02",
                "data": {
                    "tax_details": {
                        "contact_phone_no": "9866545439"
                    },
                    "orderinfo": [
                        {
                            "contact_phone_no": "9866545439"
                        },
                        {
                            "contact_phone_no": "9866545439"
                        },
                        {
                            "contact_phone_no": "9866545439"
                        }
                    ]
                }
            },
            {
                "name": "Inorbit_Vendor 01",
                "data": {
                    "tax_details": {
                        "contact_phone_no": "9866545438"
                    },
                    "orderinfo": [
                        {
                            "contact_phone_no": "9866545438"
                        }
                    ]
                }
            }
        ]
    }
}

请告诉我如何阅读orderinfo数组?

我试过以下

import org.json.JSONArray;
import org.json.JSONObject;


String ordersplitjson = ""; // Above JSON 


        try
        {
            JSONObject jsonOrder = new JSONObject(ordersplitjson);
            JSONArray jsonT1Array = jsonOrder.getJSONObject("vendors").getJSONArray("T1");
            System.out.println(jsonT1Array.length()); // length is 2 
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

有人可以帮我看看如何阅读这个orderinfo JSONArray ??

2 个答案:

答案 0 :(得分:1)

JSONObject jsonOrder = new JSONObject(ordersplitjson);
JSONArray jsonT1Array = jsonOrder.getJSONObject("vendors").getJSONArray("T1");
for(int i = 0; i < jsonT1Array.length(); i++) {
    JSONObject jsonT1ArrayObject = jsonT1Array.getJSONObject(i);
    JSONObject jsonData = jsonT1ArrayObject.getJSONObject("data"); // data
    JSONArray jsonOrderInfo = jsonData.getJSONArray("orderinfo"); // orderinfo

    // iterating order info
    for(int j = 0; j < jsonOrderInfo.length(); j++) {
        JSONObject foobar = jsonOrderInfo.getJSONObject(j);
        String contactNo = foobar.getString("contact_phone_no");
    }
}

答案 1 :(得分:0)

您可以轻松地遍历json数组:

 JSONArray jsonT1Array = jsonOrder.getJSONObject("vendors").getJSONArray("T1");
 for(int i = 0; i < jsonT1Array.length(); i++) {
    // Get the objects in T1 array
    JSONObject objectInArray = jsonT1Array.getJSONObject(i).getJSONObject("data"); 

    // Then get the JSONArray you want
    JSONArray jsonOrderArray = objectInArray.getJSONArray("orderinfo");

    // You may iterate again over ordeinfo array
    for(int j = 0; j < jsonOrderArray.length(); j++) {
        JSONObject objectInOrderArray = jsonOrderArray.getJSONObject(j);
        String orderNumber = objectInOrderArray.getString("contact_phone_no");
    }
 }