2015-09-25 2 views
0

Это мой ответ json, и я хочу получить (getuserlistdata) элемент и изображения Array из массива (hostImage). Пожалуйста, помогите мне разобрать этот ответ в doInBackground.Как получить вложенный объект json Array в android

{ 
    "status": "true", 
    "data": { 
     "userinfo": [ 
      { 
       "id": "77", 

       "auth_key": "", 
       "password_hash": "ceb6c970658f31504a901b89dcd3e461", 
       "password_reset_token": null, 
       "firstname": "Test", 
       "lastname": "", 
       "phone_verify": "" 
      } 
     ], 
     "getuserlistdata": [ 
      { 
       "hostid": "122", 
       "user_id": "77", 
       "cancellationpolicies": "Strict", 
       "hostImage": [ 
        { 
         "id": "551", 
         "hostid": "122", 
         "images": "user_21t657.jpg", 
         "description": "" 
        }, 
        { 
         "id": "3954", 
         "hostid": "122", 
         "images": "user_251541535.jpg", 
         "description": "" 
        }, 
        { 
         "id": "3955", 
         "hostid": "122", 
         "images": "user_69beautiful-city-wallpaper-.jpg", 
         "description": "" 
        }, 
        { 
         "id": "3959", 
         "hostid": "122", 
         "images": "user_85download.jpg", 
         "description": "" 
        }, 
        { 
         "id": "3960", 
         "hostid": "122", 
         "images": "user_65images.jpg", 
         "description": "" 
        }, 
        { 
         "id": "8925", 
         "hostid": "122", 
         "images": "user_15exclusive-well-designed-free-blue-living-room-hd.jpg", 
         "description": "" 
        }, 
        { 
         "id": "8926", 
         "hostid": "122", 
         "images": "user_59luxury-rooms-desings-wallpapers.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 

        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "500", 
       "user_id": "77", 
       "state": " Himachal Pradesh", 
       "address": "Tutikandi, Shimla, Himachal Pradesh, India", 
       "cancellationpolicies": "Flexible", 
       "hostImage": [ 
        { 
         "id": "1546", 
         "hostid": "500", 
         "images": "user_85435.jpg", 
         "description": "" 
        }, 
        { 
         "id": "1547", 
         "hostid": "500", 
         "images": "user_376929237.jpg", 
         "description": "" 
        }, 
        { 
         "id": "1548", 
         "hostid": "500", 
         "images": "user_7512699433.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 

        "auth_key": "", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "cancellationpolicies": "Strict", 
       "hostImage": [ 
        { 
         "id": "1727", 
         "hostid": "569", 
         "images": "user_81435.jpg", 
         "description": "" 
        }, 
        { 
         "id": "1728", 
         "hostid": "569", 
         "images": "user_6912699433.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 
        "address": "chandigarh india", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "607", 
       "user_id": "77", 
       "cancellationpolicies": "Moderate", 
       "hostImage": [ 
        { 
         "id": "1913", 
         "hostid": "607", 
         "images": "user_64435.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "609", 
       "address": "Leh Manali Hwy, Himachal Pradesh 175140, India", 
       "cancellationpolicies": "Flexible", 
       "hostImage": [ 
        { 
         "id": "1958", 
         "hostid": "609", 
         "images": "user_57435.jpg", 
         "description": "" 
        }, 
        { 
         "id": "8971", 
         "hostid": "609", 
         "images": "user_13Home-Interior-Design-Hd-Wallpaper-Hd-Background-With-Simple-Staircase-And-Plasma-TV-Also-Nice", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 

        "auth_key": "", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2453", 
       "user_id": "77", 
       "cancellationpolicies": "Strict", 
       "hostImage": [ 
        { 
         "id": "9658", 
         "hostid": "2453", 
         "images": "user_92home-interior-design-ideas-1920x1200-on-interiorpicture.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2517", 
       "cancellationpolicies": "Moderate", 
       "hostImage": [ 
        { 
         "id": "10002", 
         "hostid": "2517", 
         "images": "user_787865-most-beautiful-places-in-the-world-hd-wallpaper-1600x900.jpg", 
         "description": "" 
        }, 
        { 
         "id": "11441", 
         "hostid": "2517", 
         "images": "user_47apeiron-hotel-dubai.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 

        "auth_key": "", 
        "password_reset_token": null, 
        "firstname": "Test", 
        "lastname": "", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2582", 
       "user_id": "77", 
       "hometype": "Villa", 
       "cancellationpolicies": "Moderate", 
       "hostImage": [ 
        { 
         "id": "10955", 
         "hostid": "2582", 
         "images": "user_15lets-travel-to-united-arab-emirates-abu-dhabi-with-sanjay-pradhan-2.jpg", 
         "description": "" 
        }, 
        { 
         "id": "10957", 
         "hostid": "2582", 
         "images": "user_30UAE-Real-estate-dubai.jpg", 
         "description": "" 
        }, 
        { 
         "id": "10958", 
         "hostid": "2582", 
         "images": "user_19Wonderful-living-rooms-Elegant-Wallpaper-HD.jpg", 
         "description": "" 
        }, 
        { 
         "id": "10959", 
         "hostid": "2582", 
         "images": "user_13wood-bathroom-design-and-interior-home-design-photo.jpg", 
         "description": "" 
        }, 
        { 
         "id": "10960", 
         "hostid": "2582", 
         "images": "user_1029983-325892.jpg", 
         "description": "" 
        }, 
        { 
         "id": "10961", 
         "hostid": "2582", 
         "images": "user_72apeiron-hotel-dubai.jpg", 
         "description": "" 
        }, 
        { 
         "id": "10962", 
         "hostid": "2582", 
         "images": "user_89Dubai-UAE-Wallpaper.jpg", 
         "description": "" 
        }, 
        { 
         "id": "10963", 
         "hostid": "2582", 
         "images": "user_83luxury-rooms-desings-wallpapers.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 
        "auth_key": "", 
        "password_reset_token": null, 
        "firstname": "Test", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2619", 
       "user_id": "77", 
       "hometype": "Villa", 
       "roomtype": "Entire Home", 
       "cancellationpolicies": "Flexible", 
       "hostImage": [ 
        { 
         "id": "10519", 
         "hostid": "2619", 
         "images": "user_131541535.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 
        "auth_key": "", 
        "password_reset_token": null, 
        "firstname": "Test", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2667", 
       "user_id": "77", 
       "hometype": "Villa", 
       "roomtype": "Entire Home", 
       "address": "3A, Amparafaravola, Madagascar", 
       "cancellationpolicies": "Strict", 
       "hostImage": [ 
        { 
         "id": "11157", 
         "hostid": "2667", 
         "images": "user_20DCP_3742.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 
        "auth_key": "", 
        "password_hash": "ceb6c970658f31504a901b89dcd3e461", 
        "password_reset_token": null, 
        "firstname": "Test", 
        "lastname": "", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "cancellationpolicies": "Moderate", 
       "hostImage": [ 
        { 
         "id": "11159", 
         "hostid": "2744", 
         "images": "user_237865-most-beautiful-places-in-the-world-hd-wallpaper-1600x900.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2745", 
       "address": "763 Purerua Rd, Te Tii 0294, New Zealand", 
       "cancellationpolicies": "Strict", 
       "hostImage": [ 
        { 
         "id": "11160", 
         "hostid": "2745", 
         "images": "user_171541535.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2759", 
       "cancellationpolicies": "Moderate", 
       "hostImage": [ 
        { 
         "id": "11229", 
         "hostid": "2759", 
         "images": "user_2229983-325892.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 

        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2813", 
       "cancellationpolicies": "Moderate", 
       "hostImage": [ 
        { 
         "id": "11841", 
         "hostid": "2813", 
         "images": "user_89green-kitchen-home-interior-designs.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2863", 
       "user_id": "77", 
       "hometype": "Villa", 
       "cancellationpolicies": "Strict", 
       "hostImage": [ 
        { 
         "id": "11742", 
         "hostid": "2863", 
         "images": "user_86DCP_3742.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 

        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2886", 
       "user_id": "77", 
       "hometype": "Apartment", 
       "cancellationpolicies": "Flexible", 
       "hostImage": [ 
        { 
         "id": "11843", 
         "hostid": "2886", 
         "images": "user_100exclusive-well-designed-free-blue-living-room-hd.jpg", 
         "description": "" 
        }, 
        { 
         "id": "11844", 
         "hostid": "2886", 
         "images": "user_100green-kitchen-home-interior-designs.jpg", 
         "description": "" 
        }, 
        { 
         "id": "11845", 
         "hostid": "2886", 
         "images": "user_22Home-Decorating-41.jpg", 
         "description": "" 
        }, 
        { 
         "id": "11846", 
         "hostid": "2886", 
         "images": "user_61home-design-interior-luxury-light-color-bed-room-785x488.jpg", 
         "description": "" 
        }, 
        { 
         "id": "11847", 
         "hostid": "2886", 
         "images": "user_22wood-bathroom-design-and-interior-home-design-photo.jpg", 
         "description": "" 
        }, 
        { 
         "id": "11848", 
         "hostid": "2886", 
         "images": "user_3626_591.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2945", 
       "user_id": "77", 
       "cancellationpolicies": "Flexible", 
       "hostImage": [ 
        { 
         "id": "12172", 
         "hostid": "2945", 
         "images": "user_71top-home-interior-designer-06.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2961", 
       "user_id": "77", 
       "cancellationpolicies": "Flexible", 
       "hostImage": [ 
        { 
         "id": "12272", 
         "hostid": "2961", 
         "images": "user_487865-most-beautiful-places-in-the-world-hd-wallpaper-1600x900.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 

        "auth_key": "", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2963", 
       "user_id": "77", 
       "hometype": "house", 
       "roomtype": "shared Room", 
       "accommodates": "3", 
       "cancellationpolicies": "Flexible", 
       "hostImage": [], 
       "user": { 
        "id": "77", 

        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2964", 
       "user_id": "77", 
       "hometype": "house", 
       "roomtype": "shared Room", 
       "accommodates": "3", 
       "cancellationpolicies": "Flexible", 
       "hostImage": [], 
       "user": { 
        "id": "77", 

        "auth_key": "", 
        "password_hash": "ceb6c970658f31504a901b89dcd3e461", 
        "password_reset_token": null, 
        "firstname": "Test", 
        "lastname": "", 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2967", 
       "user_id": "77", 
       "hometype": "house", 
       "roomtype": "Private Room", 
       "cancellationpolicies": "Flexible", 
       "hostImage": [], 
       "user": { 
        "id": "77", 

        "auth_key": "", 
        "password_hash": "ceb6c970658f31504a901b89dcd3e461", 
        "password_reset_token": null, 
        "phone_verify": "" 
       } 
      }, 
      { 
       "hostid": "2968", 
       "user_id": "77", 
       "hometype": "Villa", 
       "roomtype": "shared Room", 
       "cancellationpolicies": "Flexible", 
       "hostImage": [ 
        { 
         "id": "12278", 
         "hostid": "2968", 
         "images": "user_15Koala.jpg", 
         "description": "" 
        } 
       ], 
       "user": { 
        "id": "77", 

        "auth_key": "", 
        "password_hash": "ceb6c970658f31504a901b89dcd3e461", 
        "password_reset_token": null, 
        "firstname": "Test", 
        "phone_verify": "" 
       } 
      } 
     ], 
     "fetch_all_ref": [], 
     "tripdata": [] 
    } 
} 

И этот мой код для Android.

protected Void doInBackground(Void... params) { 

     ServiceHandler2 sh = new ServiceHandler2(); 

     String url="http://192.168.0.65/hostandguest/android/viewprofile?uid=77"; 

     String jsonStr = sh.makeServiceCall(url, ServiceHandler2.GET); 



     Log.d("Response: ", "> " + jsonStr); 

     if (jsonStr != null) { 

      try { 

       JSONObject jsonObj = new JSONObject(jsonStr); 
       status = jsonObj.getString("status"); 
       Userarr=jsonObj.getJSONObject("data").getJSONArray("userinfo"); 



       if (status.equalsIgnoreCase("false")) { 
        Log.v("PostExecute", "1111111111111111111111"); 

       } else { 
        // Getting JSON Array node 
        Userarr=jsonObj.getJSONObject("data").getJSONArray("userinfo"); 

        // looping through All Contacts 
        for (int i = 0; i < Userarr.length(); i++) { 

         JSONObject c = Userarr.getJSONObject(i); 


         String Fname=c.getString("firstname"); 
         Fname_arr.add(Fname); 
         Log.v("Fname",Fname); 






         JSONArray _jArrImg = c.getJSONArray("getuserlistdata"); 






          for (int j = 0; j < _jArrImg.length(); j++) { 
           JSONObject js = _jArrImg.getJSONObject(j); 

           JSONArray hostimage_arr = c.getJSONArray("hostImage"); 
           for(int k = 0; k < hostimage_arr.length(); k++) 
           { 
            String image = js.getString("images"); 

            if (_jArrImg.length() ==0) { 

             det_img.add("https://s3-ap-southeast-1.amazonaws.com/nanoweb/hostguesthome/uploadedfile/hostImages/user_12707aaf22_original.jpg"); 

            } 


            if (j==0) { 
             det_img.add("https://s3-ap-southeast-1.amazonaws.com/nanoweb/hostguesthome/uploadedfile/hostImages/"+image); 
            } 

           } 








         } 




        } 



       } 










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

     return null; 
    } 
+0

есть проблема в pasrsing "картинки", в вашем коде, пытаются получить «изображения» из js, т. е. js.getString ("картинки"); но нет никакой строки изображений в «js», см. мой ответ. –

ответ

0

Вот ваша проблема

for(int k = 0; k < hostimage_arr.length(); k++) 
{ 
    //Add this line 
    JsonObject innerObj=hostimage_arr.getJsonObject(k); 
    String image = js.getString("images"); // change it to innerObj.getString("images"); 
    if (_jArrImg.length() ==0) { 
     det_img.add("https://s3-ap-southeast-1.amazonaws.com/nanoweb/hostguesthome/uploadedfile/hostImages/user_12707aaf22_original.jpg"); 

    } 


    if (j==0) { 
     det_img.add("https://s3-ap-southeast-1.amazonaws.com/nanoweb/hostguesthome/uploadedfile/hostImages/"+image); 
    } 

} 
0

Ваш второй jsonarray (getuserlistdata) находится в объекте данных. но вы пытаетесь получить от userinfo jsonarray. удалите петлю usserarr, она решит вашу проблему.

Userarr=jsonObj.getJSONObject("data").getJSONArray("userinfo"); 

       // looping through All Contacts 

Снимите петлю

   for (int i = 0; i < Userarr.length(); i++) { 
    JSONObject c = Userarr.getJSONObject(i); 

        String Fname=c.getString("firstname"); 
        Fname_arr.add(Fname); 
        Log.v("Fname",Fname); 

      //change this 

      JSONArray _jArrImg = jsonObj.getJSONObject("data").getJSONArray("getuserlistdata"); 

     for (int j = 0; j < _jArrImg.length(); j++) { 
          JSONObject js = _jArrImg.getJSONObject(j); 

          JSONArray hostimage_arr = c.getJSONArray("hostImage"); 
          for(int k = 0; k < hostimage_arr.length(); k++) 
          { 
        // you are try get image from js object create a new object 
           JSONObject hostimage = hostimage_arr.getJSONObject(k); 
           String image = hostimage.getString("images"); 

           if (_jArrImg.length() ==0) { 

            det_img.add("https://s3-ap-southeast-1.amazonaws.com/nanoweb/hostguesthome/uploadedfile/hostImages/user_12707aaf22_original.jpg"); 

           } 


           if (j==0) { 
            det_img.add("https://s3-ap-southeast-1.amazonaws.com/nanoweb/hostguesthome/uploadedfile/hostImages/"+image); 
           } 

          } 
0

Изменить этот код с кодом:

Проблема: Вы пытаетесь получить "images" от js объекта.

JSONArray hostimage_arr = c.getJSONArray("hostImage"); 
     for (int k = 0; k < hostimage_arr.length(); k++) { 
      JSONObject jImage = _jArrImg.getJSONObject(j); // Add this line 
      String image = jImage.getString("images"); // Update this line 

      if (_jArrImg.length() == 0) { 

       det_img.add("https://s3-ap-southeast-1.amazonaws.com/nanoweb/hostguesthome/uploadedfile/hostImages/user_12707aaf22_original.jpg"); 

      } 

      if (j == 0) { 
       det_img.add("https://s3-ap-southeast-1.amazonaws.com/nanoweb/hostguesthome/uploadedfile/hostImages/" 
         + image); 
      } 
     } 
0

Вам нужно сделать другой jsonobject для получения различного массива из вашего ответа.

JSONObject jsonObjgetuserlistdata = response.getjObj(); 
JSONObject jobj , iobjimage; 

JSONArray jsonQueryArray = new JSONArray(jsonObjQuery .getString("getuserlistdata")); 
JSONArray jsonTeacherArray = new JSONArray(jsonObjTeacher .getString("teacher")); 

    for (int i = 0; i < jsonObjgetuserlistdata .length(); i++) { 
      jobj = jsonObjgetuserlistdata .getJSONObject(i); 
      JSONArray jsonImageArray = new JSONArray(jobj .getString("hostImage")); 

         for (int j = 0; j < jsonImageArray .length(); j++) { 
           iobjimage= jsonQuestionArray.getJSONObject(j); 
           image = iobjimage.getString("images" 
          } 
    } 
0

Используйте библиотеку Gson для этого. Проверьте, пожалуйста, следующую ссылку: https://github.com/google/gson

Для этого вам просто нужно создать java pojo для вашего ответа.

и вызовите следующий метод:.

новый Gson() fromJson (UserString, YourResponsePojo.class) это вернет ваш объект ответа

Смежные вопросы