2016-02-10 96 views
0

我得到一個字符串,我試圖轉換爲JSONArray。 JSONArray的長度變好(如果它的100或5000)。但我得到「java.lang.IndexOutOfBoundsException:無效索引50,大小爲50」。以下是我的代碼。java.lang.IndexOutOfBoundsException:無效索引50,大小爲50

try 
{ 
    JSONArray jsonArray = new JSONArray(returndResultForSNID); 
    System.out.println("jsonArray: "+jsonArray.length()); 
    for(int i = 0; i < jsonArray.length(); i++) 
    { 
     snid = jsonArray.getJSONObject(i).getString("snid"); 
     //number = jsonArray.getJSONObject(i).getString("phone");     
     phoneContactsDTOArrayList.add(new PhoneContactsDTO(contactNameArr.get(i).toString() , contactPhoneNumberArr.get(i).toString(), snid, ""));     
     //System.out.println("Could jsonArray parse malformed JSON: " + snid +" _> "+number); 
    } 

} 
catch (Exception e) 
{ 
    System.out.println("JSONArray error: " + e.toString()); 
} 
+2

索引的維數從0開始,從而尺寸50的具有收集裝置的是最後一個元素具有49索引 – hahn

+1

的問題是,contactNameArr或contactPhoneNumberArr與您的jsonArray大小不一樣。 – RvdK

回答

0

數組以0爲基數。

這意味着,尺寸50的陣列具有索引0到49

contactNameArrcontactPhoneNumberArr可能比的jsonArray尺寸。特別jsonArray的尺寸大於51更大和其他中的一個具有50

+2

這個問題在op的代碼中究竟在哪裏?我似乎無法找到任何地方。 – Ferrybig

+1

答案確實無關緊要。用戶沒有檢查索引是否存在於其正在使用的其他數組中。 – RvdK

+0

contactNameArr和contactPhoneNumberArr可能小於jsonArray的大小 –

相關問題