android - jsonArray.toString() 给我不完整的 json

标签 android json

我正在检索 Android 手机的联系人并创建它的 JSONArray,为我提供所有联系人的光标计数和我放置所有联系人的 JSONArray 的长度是相同的,这意味着所有联系人已成功放入 JSONArray 中。但每当我尝试在 logcat 中打印 JsonArray.toString() 时,我都会得到不完整的 Json,即它在两者之间中断?避免这种情况的解决方案是什么? 提前致谢

检索联系人并放入 json 的代码

Uri URI = ContactsContract.Contacts.CONTENT_URI;
        String[] projection = { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME,
                ContactsContract.Contacts.HAS_PHONE_NUMBER };
        String selection = ContactsContract.Contacts.HAS_PHONE_NUMBER;

        Cursor contactCursor = c.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null,
                   ContactsContract.Contacts.HAS_PHONE_NUMBER + " = 1", 
                   null, 
                   "UPPER(" + ContactsContract.Contacts.DISPLAY_NAME + ") ASC");
        Log.d("Alpha","Cursor count  is "+contactCursor.getCount());
         jsonArray=new JSONArray();
        int count=0;
         while(contactCursor.moveToNext())
         {
                String id = contactCursor.getString(contactCursor.getColumnIndex(BaseColumns._ID));
                String name = contactCursor.getString(contactCursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                String phone = "";
                if (Integer
                        .parseInt(contactCursor.getString(contactCursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)
                {
                    Cursor pCur = c.getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + " = ?", new String[] { id },
                            null);

                    while (pCur.moveToNext())
                    {
                        JSONObject json = new JSONObject();
                        phone = pCur.getString(pCur.getColumnIndex(Phone.NUMBER));
                        phone = phone.replace("(", "");
                        phone = phone.replace(")", "");
                        phone = phone.replace("-", "");
                        phone = phone.replace(" ", "");

                        try
                        {
                            json.put("Name", name);
                            json.put("Number", phone);
                            Log.d("Alpha",name + " "+phone+" "+count);
                        }
                        catch (JSONException e)
                        {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }

                        jsonArray.put(json);

                    }

                }
                count++;


         }
         Log.d("Alpha","populated jsonArray is "+jsonArray.length());
         String dataToBeSend=jsonArray.toString();
         Log.d("Alpha","populated jsonArray to string is "+dataToBeSend);
        return null;
    }

最佳答案

引用Thread "displaying-more-string-on-logcat" ,我认为您的 json 字符串长度太长(>4000 个字符)。

关于android - jsonArray.toString() 给我不完整的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18823476/

相关文章:

android - 在警报对话框中显示倒数计时器

android - 在运行计时器时延迟时间

java - 如何在android中进行点对点VoIP通话

json - 如何将具有多个结构的 JSON 附加到数组中?

php - 如何在php json编码后删除隐藏的垃圾字符

c# - 反序列化真实世界的 JSON 数据

javascript - 在帖子中格式化 JSON

android - 如何使 WebView 可点击 False 和 True

ios - 在 iOS 中从 NSDictionary 生成 JSON 字符串

android - github上传apk : something went really wrong