2017-07-19 36 views
0

,如果我有這樣的讀取數據,並把它放在一個數組

{ 
"users": [{ 
     "name": "aa", 
     "address": "a" 
    }, 
    { 
     "name ": "bb", 
     "address": "b" 
    }, 
    { 
     "name": "cc", 
     "address": "c" 
    }, 

]} 

json文件,如何閱讀此JSON文件,並把所有的名字在一個字符串數組中的Android

我用這個代碼但在第二個循環它捕獲例外

public void loadJSONFromAsset() { 
    String json = null; 
    try { 
     InputStream is = getAssets().open("data.json"); 
     int size = is.available(); 
     byte[] buffer = new byte[size]; 
     is.read(buffer); 
     is.close(); 
     json = new String(buffer, "UTF-8"); 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
    } 
    try { 
     JSONObject obj = new JSONObject(json); 
     JSONArray m_jArry = obj.getJSONArray("users"); 

     for (int i = 0; i < m_jArry.length(); i++) { 
      JSONObject jo_inside = m_jArry.getJSONObject(i); 
      names.add(jo_inside.getString("name")); 
      images.add(jo_inside.getString("address")); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 
+0

發佈異常後....登錄 – rafsanahmad007

+0

帖子異常堆棧跟蹤。 –

+0

名稱@ rafsanahmad007沒有價值 –

回答

2

即陣列中的JSON對象第二元件具有下一空格來命名可以通過2種方式解決。

    1. 作爲後端傢伙改變
  • 你解決這樣的問題,

變化的getString to optString like this

for (int i = 0; i < m_jArry.length(); i++) { 
      JSONObject jo_inside = m_jArry.getJSONObject(i); 

      String name = jo_inside.optString("name"); 

      if(TextUtils.isEmpty(name)) { 
       name = jo_inside.optString("name "); // that object have space 
      } 
     names.add(name); 
     images.add(jo_inside.getString("address")); 
    } 
+0

謝謝你的工作 –

1

您的Json文件包含錯誤的格式JSON。從最後一個數組元素

{ 
     "name": "cc", 
     "address": "c" 
    }, 

刪除,的有效的JSON應該是:

{ 
    "users": [{ 
      "name": "aa", 
      "address": "a" 
     }, 
     { 
      "name": "bb", 
      "address": "b" 
     }, 
     { 
      "name": "cc", 
      "address": "c" 
     } 

    ] 
} 
+0

謝謝你的工作 –

+0

高興地幫助...如果答案有用,歡迎您將其標記爲正確。謝謝 – rafsanahmad007

1

您在只有你的JSON字符串有問題。在第二個JSON name字段中有額外的空間。也有,最後JSON },

{ 
    "users": [{ 
      "name":"aa", 
      "address":"a" 
     }, 
     { 
      "name":"bb", 
      "address":"b" 
     }, 
     { 
      "name":"cc", 
      "address":"c" 
     } 
    ] 
} 
+0

謝謝你的工作 –

相關問題