我正在收到一个我想要转换为JSONArray的字符串。 JSONArray的长度正常(如果是100或5000)。但我得到“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() );
}
答案 0 :(得分:0)
数组是基于0的。
这意味着大小为50的数组的索引从0到49。
contactNameArr
和contactPhoneNumberArr
可能小于jsonArray
的大小。特别是jsonArray
的大小大于51,而其他一个的大小为50。