0

Я пытаюсь сделать расширенный просмотр списка с помощью android, и это мой результат json.Parse Json Array Inside Json Array с android

[ 
    { 
    eCode: 0, 
    Menu_Cat_Id: 1, 
    Menu_Cat_Name: "Salaaad", 
    photo: "http://awtuts.com/restaurant/uploads/categories/2.jpg", 
    subCategories: [ 
     { 
     Item_Id: 1, 
     Item_NameAR: "شيش طاووق", 
     Item_NameEN: "SHeeeeeeesh", 
     Item_size: "Larg", 
     Item_Prc: 100, 
     Item_Photo: "http://awtuts.com/restaurant/uploads/subcategories/1.jpg" 
     }, 
     { 
     Item_Id: 1, 
     Item_NameAR: "شيش طاووق", 
     Item_NameEN: "SHeeeeeeesh", 
     Item_size: "Small", 
     Item_Prc: 10, 
     Item_Photo: "http://awtuts.com/restaurant/uploads/subcategories/1.jpg" 
     } 
    ] 
    }, 
    { 
    eCode: 0, 
    Menu_Cat_Id: 2, 
    Menu_Cat_Name: "Salaaad", 
    photo: "http://awtuts.com/restaurant/uploads/categories/2.jpg", 
    subCategories: [ 

    ] 
    } 
] 

и мой андроид код:

protected void onPostExecute(String result) { 
      try { 
       Parent recievedUser; 
       Parent child; 
       ArrayList<Parent> listDataHeader = new ArrayList<Parent>(); 
       List<String> parents = new ArrayList<>(); 
       ArrayList<Parent> listChildData = new ArrayList<Parent>(); 
       List<String> children = new ArrayList<>(); 
       JSONArray jsonArray = new JSONArray(result); 
       JSONArray jsonArrayChild=new JSONArray(result); 
       for (int i = 0; i < jsonArray.length(); i++) { 
        jsonObject = jsonArray.getJSONObject(i); 
        recievedUser = new Parent(); 
        child=new Parent(); 
        recievedUser.setMenu_Cat_Id(jsonObject.getInt("Menu_Cat_Id")); 
        recievedUser.setMenu_Cat_Name(jsonObject.getString("Menu_Cat_Name")); 
        recievedUser.setPhoto(jsonObject.getString("photo")); 
        child.setItem_NameEN(jsonObject.getString("Item_NameEN")); 
        listDataHeader.add(recievedUser); 
        listChildData.add(child); 

       } 

       // set list adapter 
       ExpandableListAdapter expandableListAdapter = new ExpandableListAdapter(MainActivity.this, listDataHeader, listChildData); 
       expListView.setAdapter(expandableListAdapter); 

Но у меня есть исключение, и есть проблемы со списком детей. Я пробовал много вещей, но они не работали со мной, пожалуйста, может ли любой орган помочь мне найти неправильную вещь с моим кодом?

+0

использования 'jsonArray.getJSONArray()' –

+0

Как я могу использовать его, пожалуйста? –

+0

My Json api is post kind –

ответ

0

попробовать что-то вроде этого:

JSONArray jsonArray = new JSONArray(result); 
for (int i = 0; i < jsonArray.length(); i++) { 
    jsonObject = jsonArray.getJSONObject(i); 
    recievedUser = new Parent(); 
    recievedUser.setMenu_Cat_Id(jsonObject.getInt("Menu_Cat_Id"));   
    recievedUser.setMenu_Cat_Name(jsonObject.getString("Menu_Cat_Name")); 
    recievedUser.setPhoto(jsonObject.getString("photo")); 
    categories = new JSONArray(jsonObject.get("categories")); 

    for (int i = 0; i < categories.length(); i++) { 
    category = categories.getJSONobject(i); 
    child=new Parent(); 
    child.setItem_NameEN(categories.getString("Item_NameEN")); 
    listChildData.add(child); 
    } 

    listDataHeader.add(recievedUser);   
} 
+0

Спасибо @Ankit –

0

У меня есть создать один метод для ответа разборе проверки. Успешно проанализируйте ответ jsonarray, также получив ответ подкатегории.

Проверьте метод ниже и проанализируйте жало json массива ниже. если какой-либо вопрос, а затем добавить комментарий

public void parseJsonResponse(String response) { 
     try { 

      JSONArray jsonArray = new JSONArray(response); 

      if (jsonArray != null && jsonArray.length() > 0) { 
       for (int cnt = 0; cnt < jsonArray.length(); cnt++) { 
        JSONObject jsonObj = null; 
        jsonObj = jsonArray.getJSONObject(cnt); 
        Log.d("tag", "jsonObj Menu_Cat_Id->" + jsonObj.optString("Menu_Cat_Name")); 
        JSONArray jsonArrSubCat = jsonObj.getJSONArray("subCategories"); 
        if (jsonArrSubCat != null && jsonArrSubCat.length() > 0) { 

         for (int subCnt = 0; subCnt < jsonArrSubCat.length(); subCnt++) { 
          JSONObject jsonObjSubCategory = jsonArrSubCat.getJSONObject(subCnt); 
          Log.d("tag", "jsonArrSubCat Item_NameEN->" + jsonObjSubCategory.optString("Item_NameEN")); 
         } 
        } 
       } 

      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 

Я получаю ниже журнала и успешно разобрать ваш ответ JSON без каких-либо ошибок

06-24 00:32:39.205 24881-24881/? D/tag﹕ jsonObj Menu_Cat_Id->Salaaad 
06-24 00:32:39.205 24881-24881/? D/tag﹕ jsonArrSubCat Item_NameEN->SHeeeeeeesh 
06-24 00:32:39.205 24881-24881/? D/tag﹕ jsonArrSubCat Item_NameEN->SHeeeeeeesh 
06-24 00:32:39.205 24881-24881/? D/tag﹕ jsonObj Menu_Cat_Id->Salaaad 
+0

Спасибо @ Sanket990 –

+0

wc hi Dina Shaldoum -if мой ответ в порядке для разбора Json, а затем Vote. – Sanket990