2014-05-03 77 views
0

我從對象的服務器陣列獲得,並通過這個代碼,我將其轉換爲JSON:字符串轉換成JSON數組對象...安卓

public static ArrayList<bussListCubic> parseBussinessArray(String result) { 
    ArrayList<bussListCubic> arr = new ArrayList<bussListCubic>(); 
     try { 
      JSONArray jArray = new JSONArray(result); 
      JSONObject json_data = null; 
      for (int i = 0; i < jArray.length(); i++) { 
      json_data = jArray.getJSONObject(i); 
     bussListCubic userInfo = parseBussListCubic(json_data); 
     arr.add(userInfo); 
     } 
     } catch (JSONException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
return arr; 

}

有些時候,應用程序崩潰,這是錯誤:

Caused by: java.lang.NullPointerException at 
org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116) at 
org.json.JSONTokener.nextValue(JSONTokener.java:94) at 
org.json.JSONArray.<init>(JSONArray.java:87) at 
org.json.JSONArray.<init>(JSONArray.java:103) 

它也指出,隨着該行的錯誤: JSONArray jArray = new JSONArray(result):在上面的代碼行#4 ...這個錯誤是什麼意思?

謝謝

+0

錯誤是最常見的錯誤是什麼,是它的價值造成。這意味着什麼是'null',並且你試圖使用那個對象,就好像它不是。 – keyser

+0

好的,但你如何解釋應用程序大多數時間工作完美,有時它崩潰! – user3516596

+0

請在循環之前檢查json。檢查它是否包含數據,然後只使用它。 – user2323471

回答

2

崩潰是由無效String result

打印結果傳遞給parseBussinessArray方法,看看當碰撞發生

+0

實際上我也嘗試發送錯誤的結果數據「只是爲了測試它」,並且應用程序不會崩潰,它只是不顯示任何東西! – user3516596

+0

如果您使用try catch,則該錯誤被屏蔽,因此應用程序不會崩潰,但不會顯示值,但輸入錯誤 – Silverstorm

+0

實際上,現在我只是嘗試將空結果發送給parseBussinessArray,並且我得到了同樣的錯誤,所以有些時候應用程序發送空結果!! – user3516596