“这是将数据转换成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
可能为空。
另外,如果您有一个完整的堆栈跟踪,那么下次请在问题中提供。