arrays - Volley Json 解析
问题描述
我想获取数组“列表”和“项目”的对象。使用下面的代码,我得到的输出是没有项目的值。我有1个模型课。我无法获取所有数组对象。我使用了 2 个循环。我该怎么做?
{
"status": 200,
"list": [
{
"quot_uid": "QUOTE2018@1",
"id": "1",
"expiry_date": "2018-05-29",
"created_at": "2018-05-22 11:45:58",
"left_days": "8",
"items": [
{
"ITEM_NAME": "Copper Wires",
"UNIT": "MT",
"qty": "5",
"make": null
},
{
"ITEM_NAME": "OFC Cables",
"UNIT": "MT",
"qty": "2",
"make": null
}
]
}
]
}
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
progressDialog.dismiss();
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray jsonArray = jsonObject.getJSONArray("list");
JSONArray jsonArray1 = jsonObject.getJSONArray("items");
for (int i =0 ; i < jsonArray.length();i++) {
for(int j=0; j< jsonArray1.length(); j++){
JSONObject jsonObject1 = jsonArray.getJSONObject(i);
JSONObject object = jsonArray1.getJSONObject(j);
ListQuotation item = new ListQuotation(
jsonObject1.getString("quot_uid"),
jsonObject1.getString("created_at"),
jsonObject1.getString("expiry_date"),
jsonObject1.getString("left_days"),
object.getString("ITEM_NAME"),
object.getString("qty")
);
listItems.add(item);
}
}
recyclerView.setAdapter(adapter);
} catch (JSONException e) {
Toast.makeText(getContext(),"No Records Found",Toast.LENGTH_LONG);
Log.e("Error", "Failed" +e.toString());
e.printStackTrace();
}
}
},
解决方案
我有一个解决方案
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray jsonArray = jsonObject.getJSONArray("list");
for (int i =0 ; i < jsonArray.length();i++) {
JSONObject jsonObject1 = jsonArray.getJSONObject(i);
JSONArray jsonArray1 = jsonObject1.getJSONArray("items");
for (int j =0 ; j < jsonArray1.length();j++) {
JSONObject jsonObject2 = jsonArray1.getJSONObject(j);
ListQuotation item = new ListQuotation(
jsonObject1.getString("quot_uid"),
jsonObject1.getString("created_at"),
jsonObject1.getString("expiry_date"),
jsonObject1.getString("left_days"),
jsonObject2.getString("ITEM_NAME"),
jsonObject2.getString("qty")
);
listItems.add(item);
}
}
recyclerView.setAdapter(adapter);
} catch (JSONException e) {
Toast.makeText(getContext(),"No Records Found",Toast.LENGTH_LONG);
Log.e("Error", "Failed" +e.toString());
e.printStackTrace();
}
推荐阅读
- javascript - 每当 Promise 在 NodeJS 应用程序中被拒绝时获取异常,这会导致应用程序重新启动
- encoding - rails 5 请求不向控制器发送德语信件
- spring - RestController:返回 Resource<> 使 FetchType.LAZY 表现为 FetchType.EAGER
- ios - 如何获得从 UIView 到另一个的垂直距离?
- javascript - 当 Promise 被拒绝时如何触发 React 错误边界?
- jquery - 在多个具有相同名称的复选框的情况下,如何检测是否未选中任何复选框
- android - 想要滚动列表到特定位置
- python - Django MultiWidget 和字段标签
- regex - 正则表达式从 Alteryx 中具有特定模式的字符串中提取数字
- python - 我们真的需要在我们的可迭代对象的所有 for 循环中使用内置的 iter 吗?