我已从 Android phone
中提取了所有联系人号但未将所有phonenumbers
转换为json
格式。在某些*android phone*
中,它正在运行但在我的手机中 Samsung Duos ,它无效。
它给出了如下输出: -
{ “数据”:[{ “电话”: “+ 9187678965433”, “姓名”: “主页”},{ “电话”: “+ 9178961042”, “名称”: “Vikash(砰)”}, {“phone”:“+ 91826543748”,“name”:“Chandan(mota)”},{“phone”:“+ 91867868199”,“name”:“Amit Singh”},{“phone”:“+ 9143228811 “,”name“:”Jimmi Sinha“},{”phone“:”+ 91989769610“,”name“:”Nagar(Aone)“},{”phone“:”+ 919465436261“,”name“:”Shahi (Biet) “},{” 电话 “:” + 917576540555" , “名称”: “的Pankaj(Biet)”}, “姓名”:“p
我的一些代码如下: - 在它首先存储在bytearray之后,它准备了json格式。在将联系人转换为json格式时,json中断如上所示
我的一些代码如下: -
JSONArray postjson=new JSONArray();
JSONObject json = null;
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
String[] projection = new String[] {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER};
Cursor people =getContentResolver().query(uri, projection, null, null, null);
int indexName = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
int indexNumber = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
people.moveToFirst();
do {
String name =people.getString(indexName);
String number =people.getString(indexNumber);
HashMap<String,Object> NamePhoneType = new HashMap<String,Object>();
NamePhoneType.put("name",name);
NamePhoneType.put("mobileno",number);
//test email
// NamePhoneType.put("email","asad@test.com");
//test email ends here
Log.d("name+---+number",name+"----"+number);
// userarraylist.add(NamePhoneType);
json = new JSONObject().put("contact_no",number.trim());
postjson.put(json);
json.put("name",name.trim());
postjson.put(json);
} while (people.moveToNext());
Log.d("json data new query",postjson.toString().trim());
people.close();
答案 0 :(得分:1)
您的JSON是正确的。看起来你的logcat正在截断输出。这是由于最大长度为4 * 1024字节。
你可以增加它,但不建议适当的速度和可读的输出。
你得到的错误在哪里?看起来你有一个名为data的数组,它包含带有电话和名字的jsonobjects。
如果您无法修改AS中的logcat,请转到
文件 - &GT;设置 - &GT;编辑器 - &GT;颜色和字体 - &gt;控制台字体