gpt4 book ai didi

android - 在android中转换为json数组时android联系人中的问题

转载 作者:行者123 更新时间:2023-11-29 21:47:24 25 4
gpt4 key购买 nike

目前我正在使用 android 联系人,我想将其转换为 json 数组以将此联系人发布到网络服务器,我能够获取所有联系人,但问题是当我打印 json 数组时它只显示最后一个联系人.我认为对象值没有保留,我该如何解决这个问题?我只是在下面发布我的代码。

        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);

最佳答案

您不是在打印 JSONArray,而是在打印变量 jsnName,它是一个 JSONObject - 单个值。每次循环都会覆盖它。您需要在循环中每次创建一个新的 JSONObject,将每个完成的 JSONObject 添加到 JSONArray,然后打印它。

关于android - 在android中转换为json数组时android联系人中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15434762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com