1
陣列目前,我與機器人接觸的工作,我想在它轉換爲JSON數組後這個聯繫人的網絡服務器,我能夠得到所有的聯繫人,但問題是當我打印JSON數組它只顯示最後一次contact.i認爲對象值不保留,我該如何解決這個問題?我只是發佈我的代碼如下。問題在Android通訊錄時轉換爲JSON在Android的
JSONArray jsnConts=new JSONArray();
JSONObject jsnMain= new JSONObject();
ContentResolver cr =getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
lengthh=cursor.getCount();
JSONObject a[]=new JSONObject[lengthh];
ArrayList<String>cnt2=new ArrayList<String>();
contactarray=new String[lengthh][avalues.length];
System.out.println(cursor.getCount());
JSONObject jsnName=new JSONObject();
int kk=0;
while (cursor.moveToNext())
{
ArrayList<String>cnt1=new ArrayList<String>();
displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
mail(id);
Ph_num(id);
for (int i=0; i<4; i++)
{
if(i==0)
{
cnt1.add("Name ="+displayName);
jsnName.put("Name", displayName);
}
if(i==1)
{
cnt1.add("id ="+id);
jsnName.put("id", id);
}
if(i==2)
{
cnt1.add("email ="+email_data);
jsnName.put("email", EMAIL);
jsnName.put("email1", EMAIL1);
jsnName.put("email2", EMAIL2);
}
if(i==3)
{
cnt1.add("PHONE_NUM_DATA ="+PHONE_NUM_DATA);
jsnName.put("ph1", PH_NUM);
jsnName.put("ph2", PH_NUM1);
jsnName.put("ph3", PH_NUM2);
jsnName.put("ph4", PH_NUM3);
}
// jsnConts.put(jsnName);
//jsnConts.put(kk, jsnName);
}
cnt2.addAll(cnt1);
// System.out.println("test"+jsnName);
jsnConts.put(jsnName);
// jsnConts.put(kk, jsnName);
kk++;
}
System.out.println("test"+jsnName);
System.out.println("testjsn"+jsnConts);
// System.out.println("------"+a);
感謝answer.what一個愚蠢的錯誤我犯了,感謝您指出。 – jithu 2013-03-15 14:51:40