我有一些嵌套的JSON如下。
{
"status": 1,
"data": [
{
"iMainServiceId": 1,
"main": "NAILS",
"sub": [
{
"iSubServiceId": 1,
"vName": "Manicure",
"fPrice": 15,
"vDuration": "20 Minutes"
},.......
]
}
]
}
现在我希望将这些数据显示在ListActivity中。 在这里我想将firstarray作为listview中的标题,将另一个数组作为数据 我很困惑如何将两个不同的ArrayAdapter应用于此。
我应该为两个不同的ArrayLists做什么? 我应该如何使用ArrayAdapters?
答案 0 :(得分:0)
您可以像下面一样简化json并使用一个ArrayList<Products>
来获取所有项目和一个适配器来查看它!
{
"products": [
{
"cat_id": "9",
"position": "1",
"sku": "wwww345"
},
{
"cat_id": "9",
"position": "2",
"sku": "coof23"
},
{
"cat_id": "9",
"position": "3",
"sku": "dde45"
},
{
"cat_id": "9",
"position": "4",
"sku": "5555"
},
{
"cat_id": "9",
"position": "2",
"sku": "coof23"
},
{
"cat_id": "9",
"position": "3",
"sku": "dde45"
},
{
"cat_id": "9",
"position": "4",
"sku": "5555"
},
{
"cat_id": "9",
"position": "1",
"sku": "wwww345"
}
]
}
答案 1 :(得分:0)
如果对所有列表分区没有任何实际需要,则将列表展平。
List<JSONObject> prods = new ArrayList<>(); // Simple JSON list
JSONObject obj = new JSONObject(response);
JSONArray prodCat_list = obj.getArray("prodCat_list");
for (int i = 0; i < prodCat_list.length(); i++) {
JSONArray innerProds = prodCat_list.getJSONObject(i).getJSONArray("prods");
for (int j = 0; j < innerProds.length(); j++) {
JSONObject prod = innerProds.getJSONObject(j)
// TODO: parse prod
prods.add(prod);
}
}
adapter = new ArrayAdapter<String>(
getContext(),
android.R.layout.simple_list_item_1, // example layout
prods);
listView.setAdapter(adapter);