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

Posted

技术标签:

【中文标题】jsonArray.toString() 给了我不完整的 json【英文标题】:jsonArray.toString() gives me incomplete json 【发布时间】:2013-09-16 08:26:05 【问题描述】:

我正在检索 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;
    

【问题讨论】:

查看***.com/a/7606118/983741 你能发你的JSON 【参考方案1】:

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

【讨论】:

以上是关于jsonArray.toString() 给了我不完整的 json的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 javascript (node.js) 给了我不正确的时间戳?

git status 给了我一些令人困惑的 iOS 配置文件,我不知道如何处理 [重复]

当我在英国地区将字符串转换为日期并且时区是马斯喀特时,DateFormatter 给了我不正确的结果

以下程序的输出给了我,它只是没有点击。答案是6 3,这显然是我不理解的

App Engine 标准:超时给了我 500 错误

函数的输出应该是双倍的,但它给了我整数