我有以下显示的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 ??
答案 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");
}
}