我从移动获取联系人的细节,当我尝试转换成JSON格式应用程序崩溃
“这是数据转换成JSON格式的代码”我从移动获取联系人的细节,当我尝试转换成JSON格式应用程序崩溃
private void jsonformatdata() {
// TODO Auto-generated method stub
JSONArray arr = new JSONArray();
try {
for(int i=0;i<=contactModel.size();i++)
{
JSONObject jsonAdd = new JSONObject();
jsonAdd.put("strModifiedDate", localTime);
jsonAdd.put("contactName", contactModel.get(i).getPhonebookName());
jsonAdd.put("uniqueContactID", contactModel.get(i).getContactId());
JSONArray phone = new JSONArray();
if(contactModel.get(i).getHomeNummber() == null)
{}
else
{JSONObject num1 = new JSONObject();
num1.put("",contactModel.get(i).getHomeNummber());
phone.put(num1);}
if(contactModel.get(i).getMobileNummber()==null)
{}
else
{JSONObject num2 = new JSONObject();
num2.put("",contactModel.get(i).getMobileNummber());
phone.put(num2);}
if(contactModel.get(i).getWorkNummber()==null){}
else{JSONObject num3 = new JSONObject();
num3.put("",contactModel.get(i).getWorkNummber());
phone.put(num3);}
if(contactModel.get(i).getOtherNummber()==null){}
else{JSONObject num4 = new JSONObject();
num4.put("",contactModel.get(i).getOtherNummber());
phone.put(num4);}
jsonAdd.put("phone",phone);
arr.put(i,jsonAdd);
}
String datatosend = arr.toString();
Log.e(datatosend, ""+datatosend);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
错误信息,这是我在logcat的
得到java.lang.RuntimeException: Unable to start activity
ComponentInfo {com.example.vchat/com.example.vchat.Friends_listing}: java.lang.IndexOutOfBoundsException:无效索引0,大小为0
你需要转换:
for(int i=0;i<=contactModel.size();i++)
到:
for(int i=0;i<contactModel.size();i++)
数组中的元素从零开始直到大小。可能你的contactModel
是空的。
而且下一次请包括完整的堆栈跟踪,如果你有一个,在这个问题。
thanku先生你的快速反应和给你的宝贵时间................后你建议它开始工作,但在JSON数据我没有获得任何价值只有我得到了反应[]。 –
@NikhilSingh你没有得到任何json值,因为你的contactModel是空的。你应该先解决这个问题。 – dan
您需要更改
for(int i=0;i<=contactModel.size();i++)
到
for(int i=0;i<contactModel.size();i++)
这是我的联系人模型类... –
请任何人快速回复,以便我可以提前修复它... thanx –
ArrayIndexOutofBound表示您正在从列表位置获取不存在的数据。而不是