这是我的json响应,我想从(hostImage)数组获取(getuserlistdata)数组项和图像。请帮我在doInBackground中解析这个响应。
{
"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": []
}
}
这是我的安卓代码。
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 :(得分: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);
}
}
答案 1 :(得分: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);
}
}
答案 2 :(得分: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);
}
}
答案 3 :(得分: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"
}
}
答案 4 :(得分:0)
使用Gson库。 请检查以下链接 https://github.com/google/gson
为此你只需要为你的回复创建java pojo。
并调用以下方法:
new Gson()。fromJson(userString,YourResponsePojo.class) 这将返回您的响应对象