我正在从网址解析以获取数据到Horizontal Listview 它的工作正常,但它只显示json对象的最后一个值.i下面粘贴了我的json解析和json。请告诉我我在哪里做错了。
这是我的json
{
"status": 1,
"category": [
{
"id": 1,
"category_name_en": "car",
"category_name_ar": "car",
"description_en": "",
"description_ar": "",
"day": "monday,tuesday,wednesday,thursday,friday,saturday,sunday",
"status": "A",
"created_at": "Sep 4 2017 8:09 AM",
"updated_at": "Sep 4 2017 8:09 AM",
"sub_category": [
{
"id": 1,
"sub_category_name_en": "Audi",
"sub_category_name_ar": "Audi",
"sub_description_en": "",
"sub_description_ar": "",
"status": "A",
"created_at": "Sep 4 2017 8:10 AM",
"updated_at": "Sep 4 2017 8:10 AM"
},
{
"id": 4,
"sub_category_name_en": "New",
"sub_category_name_ar": "New",
"sub_description_en": "",
"sub_description_ar": "",
"status": "A",
"created_at": "Sep 4 2017 9:45 AM",
"updated_at": "Sep 4 2017 9:45 AM"
}
]
},
{
"id": 2,
"category_name_en": "Animal",
"category_name_ar": "Animal",
"description_en": "",
"description_ar": "",
"day": "monday,tuesday,wednesday,thursday,friday,saturday,sunday",
"status": "A",
"created_at": "Sep 4 2017 9:19 AM",
"updated_at": "Sep 4 2017 9:19 AM",
"sub_category": [
{
"id": 2,
"sub_category_name_en": "Dogs",
"sub_category_name_ar": "Dogs",
"sub_description_en": "",
"sub_description_ar": "",
"status": "A",
"created_at": "Sep 4 2017 9:20 AM",
"updated_at": "Sep 4 2017 9:20 AM"
},
{
"id": 3,
"sub_category_name_en": "Cat",
"sub_category_name_ar": "Cat",
"sub_description_en": "",
"sub_description_ar": "",
"status": "A",
"created_at": "Sep 4 2017 9:21 AM",
"updated_at": "Sep 4 2017 9:21 AM"
}
]
}
]
}
这是我的解析
这里我正在进行解析,它返回json对象大小,但它只显示最后一个值
我错了。请建议我
public static ArrayList<CardData> PaeseBanner(String response) throws JSONException {
ArrayList<CardData> alUser = new ArrayList<>();
JSONObject jsonRoot = new JSONObject(response);
JSONArray jsonArray = jsonRoot.getJSONArray("category");
CardData LT = new CardData();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
JSONObject jsonObject2 = null;
JSONArray jsonArray1 = jsonObject.getJSONArray("sub_category");
for (int j = 0; j < jsonArray1.length(); j++) {
jsonObject2 = jsonArray1.getJSONObject(j);
LT.setSubcategory_name(jsonObject2.getString("sub_category_name_en"));
alUser.add(LT);
}
}
return alUser;
}
这是我的屏幕短 This is Screen Short
答案 0 :(得分:0)
试试这个
for (int j = 0; j < jsonArray1.length(); j++) {
CardData LT = new CardData(); // Create new CardData object inside second for loop
jsonObject2 = jsonArray1.getJSONObject(j);
LT.setSubcategory_name(jsonObject2.getString("sub_category_name_en"));
alUser.add(LT);
}
答案 1 :(得分:0)
使用以下这些行:
CardData LT = new CardData();
和
JSONObject jsonObject2 = null;
在for循环中。像这样:
public static ArrayList<CardData> PaeseBanner(String response) throws JSONException {
ArrayList<CardData> alUser = new ArrayList<>();
JSONObject jsonRoot = new JSONObject(response);
JSONArray jsonArray = jsonRoot.getJSONArray("category");
for (int i = 0; i < jsonArray.length(); i++) {
CardData LT = new CardData();
JSONObject jsonObject = jsonArray.getJSONObject(i);
JSONArray jsonArray1 = jsonObject.getJSONArray("sub_category");
for (int j = 0; j < jsonArray1.length(); j++) {
JSONObject jsonObject2 = null;
jsonObject2 = jsonArray1.getJSONObject(j);
LT.setSubcategory_name(jsonObject2.getString("sub_category_name_en"));
alUser.add(LT);
}
}
return alUser;
}