2013-11-29 2 views
0

Я использую JSONParser.java для отображения данных в формате JSON из URLJSON массив не показаны все значения

URL-адрес и данные являются правильными, они показывают некоторые значения JSON (более одного)

но почему это показывает только одно значение?

ArrayList<HashMap<String, String>> artikelList = new ArrayList<HashMap<String, String>>(); 
     JSONParser jParser = new JSONParser(); 
     JSONObject json = jParser.getJSONFromUrl(ArtikelURL); 

     try { 
      artikels = json.getJSONArray(TAG_ARTIKEL); 

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

       // Storing each json item in variable 
       String tanggal = c.getString(TAG_TGL); 
       String judul = c.getString(TAG_JUDUL); 
       String kutipan = c.getString(TAG_KUTIPAN); 

       HashMap<String, String> map = new HashMap<String, String>();    
       map.put(TAG_TGL, tanggal); 
       map.put(TAG_JUDUL, judul); 
       map.put(TAG_KUTIPAN, kutipan); 
       artikelList.add(map); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

Это мой JSON данные:

{ 
    "status":"1", 
    "total":20, 
    "artikel":[ 
     { 
     "tanggal":"2013-08-07", 
     "judul":"Article One", 
     "kutipan":"Example of article quote..." 
     }, 
     { 
     "tanggal":"2013-07-23", 
     "judul":"Article Two", 
     "kutipan":"Example of article quote......" 
     }, 
     { 
     "tanggal":"2013-07-22", 
     "judul":"Article Three", 
     "kutipan":"Example of article quote......" 
     }, 
     { 
     "tanggal":"2013-03-16", 
     "judul":"Article Four"", 
     "kutipan":"Example of article quote,..." 
     } 
    ] 
}
+0

Каков ваш ответ json? –

+0

Не могли бы вы разместить образцы данных URL и json-ответа. Чтобы каждый мог быстро ответить. – Manidroid

+0

Я добавил данные JSON выше – user2790880

ответ

1

Ваш JSON является недействительным, есть ошибка в вашей линии 22 на 3-м объекте вашего массива

"judul":"Article Four"",

Правильный JSON является

{ 
"status": "1", 
"total": 20, 
"artikel": [ 
    { 
     "tanggal": "2013-08-07", 
     "judul": "Article One", 
     "kutipan": "Example of article quote..." 
    }, 
    { 
     "tanggal": "2013-07-23", 
     "judul": "Article Two", 
     "kutipan": "Example of article quote......" 
    }, 
    { 
     "tanggal": "2013-07-22", 
     "judul": "Article Three", 
     "kutipan": "Example of article quote......" 
    }, 
    { 
     "tanggal": "2013-03-16", 
     "judul": "Article Four", 
     "kutipan": "Exampleofarticlequote,..." 
    } 
] 
} 

Хорошо, теперь вы получаете N etwork связанные с исключением так, решение это, вы, чтобы использовать демо-код, как

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    new NetworkThread().execute(); 
} 

class NetworkThread extends AsyncTask<Void, Void, Void> { 


    @Override 
    protected Void doInBackground(Void... voids) { 

     ArrayList<HashMap<String, String>> artikelList = new ArrayList<HashMap<String, String>>(); 
     JSONParser jParser = new JSONParser(); 
     JSONObject json = jParser.getJSONFromUrl(ArtikelURL); 

     try { 
      JSONArray artikels = json.getJSONArray("artikel"); 

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

       // Storing each json item in variable 
       String tanggal = c.getString(TAG_TGL); 
       String judul = c.getString(TAG_JUDUL); 
       String kutipan = c.getString(TAG_KUTIPAN); 

       HashMap<String, String> map = new HashMap<String, String>(); 
       map.put(TAG_TGL, tanggal); 
       map.put(TAG_JUDUL, judul); 
       map.put(TAG_KUTIPAN, kutipan); 
       artikelList.add(map); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void aVoid) { 
     super.onPostExecute(aVoid); 

    } 
} 

Не забудьте добавить это AndroidManifest.xml файл:

<uses-permission android:name="android.permission.INTERNET"/> 
+0

Спасибо @Jaydipsinh, но все еще не работает: '( – user2790880

+0

Вы заменили свой JSON? –

+0

Да, я, я изменил его на '' judul ":" Article Four ",' – user2790880

0

Ваш JSON недействителен Но предполагая, что у вас есть внешний Json-массив для JsonObject. Эта реализация будет работать для вашего вложенного Json

 ArrayList<HashMap<String, String>> artikelList = new ArrayList<HashMap<String, String>>(); 
    JSONParser jParser = new JSONParser(); 
    JSONObject json = jParser.getJSONFromUrl(ArtikelURL); 

    try { 
     JSONArray a = json.getJSONArray(TAG_JSON); 

     for(int i = 0; i < a.length(); i++){ 
     HashMap<String, String> map = new HashMap<String, String>(); 
     JSONObject c = a.getJSONObject(i); 

      map.put(TAG_TOTAL, c.getString(TAG_TOTAL)); 
      map.put(TAG_STATUS, c.getString(TAG_STATUS)); 
      artikelList.add(map); 
      JSONArray akel = e.getJSONArray(artikel); 
      if(akel != null){ 
      for(int j=0;j<akel.length();j++){ 
      HashMap<String, String> map2 = new HashMap<String, String>(); 
      JSONObject f = akel.getJSONObject(j); 
      map2.put(TAG_TGL, f.getString(TAG_TGL)); 
      map2.put(TAG_JUDUL, f.getString(TAG_JUDUL)); 
      map2.put(TAG_KUTIPAN, f.getString(TAG_KUTIPAN)); 
      } 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
Смежные вопросы