我正在开发一个Android项目,我必须显示一些项目以响应我将使用提供的API发送到服务器的请求。
我会在响应中获得一个JSON对象,其中包含一个JSON数组作为其中的一个元素。
我的问题是JSON数组里面可能有几个JSON对象,如何处理这种情况是我所不知道的。
"Details": [
{
"OrderId": 7615,
"ProductId": 1292406,
"ProductImageFormat": "jpg",
"ProductImageId": 1752,
"ProductImageUrl": "",
"ProductOrgImageUrl": "",
"ProductLargeImageUrl": "",
"ProductName":""
"ProductSlug": ""
"ProductSubTitle": ""
"Quantity": 1,
"UnitPrice": 8300
},
{
"OrderId": 7615,
"ProductId": 23568452,
"ProductImageFormat": "jpg",
"ProductImageId": 1895,
"ProductImageUrl": "",
"ProductOrgImageUrl": "",
"ProductLargeImageUrl": "",
"ProductName":""
"ProductSlug": ""
"ProductSubTitle": ""
"Quantity": 1,
"UnitPrice": 3500
}
]
我可能会在一个数组中获得具有不同值的单个对象中的几个,如上所示。
我能做些什么吗?
编辑:我的意思是数组大小是动态的,我不知道如何处理动态大小的JSON数组答案 0 :(得分:0)
首先,您提供的JSON是无效。所以我要纠正它并假设以下(“详细信息”数组包含在JSONObject
)
{
"Details": [
{
"OrderId": 7615,
"ProductId": 1292406,
"ProductImageFormat": "jpg",
"ProductImageId": 1752,
"ProductImageUrl": "",
"ProductOrgImageUrl": "",
"ProductLargeImageUrl": "",
"ProductName":"",
"ProductSlug": "",
"ProductSubTitle": "",
"Quantity": 1,
"UnitPrice": 8300
},
{
"OrderId": 7615,
"ProductId": 23568452,
"ProductImageFormat": "jpg",
"ProductImageId": 1895,
"ProductImageUrl": "",
"ProductOrgImageUrl": "",
"ProductLargeImageUrl": "",
"ProductName":"",
"ProductSlug": "",
"ProductSubTitle": "",
"Quantity": 1,
"UnitPrice": 3500
}
]
}
获取数组并迭代它(假设外部对象被称为jo
):
try {
JSONArray ja = jo.getJSONArray("Details");
for (int i = 0; i < ja.length(); i++) {
JSONObject jsonObject = ja.getJSONObject(i);
Log.i("JSON", jsonObject.toString());
}
} catch (JSONException e) {
e.printStackTrace();
}
这样您就可以处理任意长度的JSON数组。