我无法获取JSONARRAY。目前,我正在发送一个请求,它向我发回包含数组和对象的响应。这个数组里面有一个数组,我无法从中获取数据,因为如果索引1超出范围[0 ... 1]
,它会给出错误`{
"ItemDetails": [
{
"LocationName": "JLT A Cluster",
"Products": [
{
"Barcode": "5760466743686",
"MainGroupName": "Chilled",
"OnHandQty": 0,
"Price": 10.5,
"ProductName": "Mozzarella Portions",
"SubGroupName": "Cheese Fats Butter"
}
]
}
],
"Status": {
"Error": "",
"ResultCode": "1",
"ResultStatus": "Success"
}
}`
这是我的代码
public void onResponse(JSONObject response) {
Log.d("APPPPPPPPPPPPP", response.toString());
try {
JSONObject status = response.getJSONObject("Status");
int Resultcode = status.getInt("ResultCode");
Log.d("",""+status.getString("ResultCode").toString());
if(Resultcode == 1){
JSONArray ItemDetail = response.getJSONArray("ItemDetails");
String LocationName = ItemDetail.getJSONObject(0).getString("LocationName");
JSONArray Products = ItemDetail.getJSONArray(1);
// JSONObject info = Products.getJSONObject(0);
Log.d("HEYYYYY",""+Products);
//String ame = ItemDetail.getJSONArray(1).getJSONObject(0).getString("Barcode");
}else if(Resultcode == 109){
}
} catch (JSONException e) {
e.printStackTrace();
}
//tv.setText(response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("EROOOOOOOOOOOOOOOOOOOOOR", "Error: " + error.getMessage());
}
我可以获取atleaset位置,并且可以轻松地从状态中获取所有数据,但无法从产品内部获取。
答案 0 :(得分:1)
而不是这一行
JSONArray Products = ItemDetail.getJSONArray(1);
尝试添加此
JSONArray Products = ItemDetail.getJSONObject(0).getJSONArray("Products");