2016-10-15 6 views
0

Как разобрать этот jsonarray «Изображения» ??разобрать JsonArray в android

я разобрать этот JSON ,, но я не могу получить «Изображения», «данные» Jsonarray внутри него элементов, внутри каждого элемента массива изображений >>>>

это ответ Json

это мой код

   JSONObject responseObject = new JSONObject(response); 

       JSONArray newsJsonArray = responseObject.getJSONArray("data"); 
       final List <AndroidVersion> newsList = new ArrayList <AndroidVersion>(); 

       newsImages = new ArrayList<String>(); 
       newsids = new ArrayList<String>(); 
       newsnames = new ArrayList<String>(); 
       newshotelsid = new ArrayList<String>(); 
       newscontents = new ArrayList<String>(); 
       newstimesto = new ArrayList<String>(); 
       newscost = new ArrayList<String>(); 
       newstimesfrom = new ArrayList<String>(); 
       newscountry = new ArrayList<String>(); 
       newscity = new ArrayList<String>(); 
       newstype = new ArrayList<String>(); 
       newsImages = new ArrayList<String>(); 

        for (int j = 0; j < newsJsonArray.length(); j++) { 
         AndroidVersion news = new AndroidVersion(); 
         if (newsJsonArray.getJSONObject(j).has("id")) { 
          newsids.add(newsJsonArray.getJSONObject(j).getString("id")); 
         } 
         if (newsJsonArray.getJSONObject(j).has("name")) { 
          news.setName(newsJsonArray.getJSONObject(j).getString("name")); 
          newsnames.add(newsJsonArray.getJSONObject(j).getString("name")); 

         } 
         if (newsJsonArray.getJSONObject(j).has("desc")) { 
          news.setdesc(newsJsonArray.getJSONObject(j).getString("desc") 
            .replaceAll("<p>", "").replaceAll("<\\/p>\\r\\n", "").replaceAll("&nbsp;", "")); 
          newscontents.add(newsJsonArray.getJSONObject(j).getString("describtion")); 
         } 

         if (newsJsonArray.getJSONObject(j).has("country")) { 
          news.setcountry(newsJsonArray.getJSONObject(j).getString("country")); 
          newscountry.add(newsJsonArray.getJSONObject(j).getString("country")); 
         } 

         if (newsJsonArray.getJSONObject(j).has("city")) { 
          news.setcity(newsJsonArray.getJSONObject(j).getString("city")); 
          newscity.add(newsJsonArray.getJSONObject(j).getString("city")); 
         } 

         if (newsJsonArray.getJSONObject(j).has("date_from")) { 
          news.setdate_from(newsJsonArray.getJSONObject(j).getString("date_from")); 
          newstimesfrom.add(newsJsonArray.getJSONObject(j).getString("date_from")); 
         } 
         if (newsJsonArray.getJSONObject(j).has("date_to")) { 
          news.setdate_to(newsJsonArray.getJSONObject(j).getString("date_to")); 
          newstimesto.add(newsJsonArray.getJSONObject(j).getString("date_to")); 
         } 
         if (newsJsonArray.getJSONObject(j).has("num persons")) { 
          news.sethotel_id(newsJsonArray.getJSONObject(j).getString("num persons")); 
          newshotelsid.add(newsJsonArray.getJSONObject(j).getString("num persons")); 
         } 
         if (newsJsonArray.getJSONObject(j).has("price")) { 
          news.setprice(newsJsonArray.getJSONObject(j).getString("price")); 
          newscost.add(newsJsonArray.getJSONObject(j).getString("price")); 
         } 
         if (newsJsonArray.getJSONObject(j).has("images")) { 
          news.setImage(newsJsonArray.getJSONObject(j).getString("images")); 
          newsImages.add(newsJsonArray.getJSONObject(j).getString("images")); 
         } 
         newsList.add(news); 
        } 
+2

Возможный дубликат [Как разобрать JSON в Android] (http://stackoverflow.com/questions/9605913/how-to-parse-json-in-android) –

+0

Вы получили URL-адрес изображения в списке? – Manish

+2

Изображения представляют собой массив, а не строку. Вам нужно другое для цикла –

ответ

0

Я настоятельно рекомендую использовать Gson, чтобы разобрать его.

Создайте объект ответа со структурой, соответствующей ответу json. Затем вы можете использовать единственный объект, не создавая его на части.

0

Изменить эту часть:

if (newsJsonArray.getJSONObject(j).has("images")) { 
    news.setImage(newsJsonArray.getJSONObject(j).getString("images")); 
    newsImages.add(newsJsonArray.getJSONObject(j).getString("images")); 
} 

к:

if(newsJsonArray.getJSONObject(j).getJSONArray("images") != null) { 
    JSONArray jArray = newsJsonArray.getJSONObject(j).getJSONArray("images"); 
    for (int k=0; k<jArray.length(); k++) { 
     news.setImage(jArray.getString(k)); 
     newsImages.add(jArray.getString(k)); 
    } 
} 
+0

есть ошибка в getJsonArray –

+0

К сожалению, это была опечатка, должна быть getJSONArray вместо getJsonArray. Я обновил –

0

Вы можете использовать прямой объект строки из JSONArray, как показано ниже:

JSONArray array = object.getJSONArray("images"); 

for (int i = 0; i < array.length(); i++) { 

String image = array.getString(i); 

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