繁体   English   中英

JSONArray.toString()在Java中不起作用

[英]JSONArray.toString() not working in Java

我尝试使用JSON将数据从Android客户端发送到Web服务器。

我面临一个问题。 从现在开始超过两天的调试以来,似乎JSONArray类的toString方法问题无法正常工作。

我有不能使用GSON库的约束。 因此,我只处理JSONArray和JSONObject库。

我按如下方式构造JSONArray:

ArrayList<SMS> SMSArray = SMSHelper.getSMSDetails(context, rEmail, rPhoneNum);
JSONArray jSMSArray = new JSONArray();

for(int i = 0; i < SMSArray.size(); i++) {
    jSMSArray.put(i, SMSArray.get(i).toJSON());
    Log.wtf("::trace", "JSONArray.get(i).toString(): " + jSMSArray.get(i).toString());
}

Log.wtf(“ :: trace”,“ JSONArray.toString():” + jSMSArray.toString());

在循环内部,我从JSONArray和ArrayList中打印出了完全相同的字符串。 因此,似乎将ArrayList复制到JSONArray可以正常工作。 再加上循环后,两个数组的大小是相同的。

不过,当我在循环后使用JSONArray.toString()时,令人惊讶的是,字符串未完成,在包含我的JSONArray的285个JSONObject中,该字符串仅打印了少数JSONObject!

我想将此JSONARRAY发送到我的服务器以在服务器端对其进行解析,但由于JSONArray不正确。 服务器无法解析收到的字符串链。 收到的字符串链看起来像:[{object1},...,{objecti},{“ id”,$ myId,“ thread”,$ myThread,“ content”,“嘿

我真的希望你们中的一个能够帮助我。 它使我发疯。 首先,我for(Object object: ObjectArray)使用了语法for(Object object: ObjectArray)但随后我了解到JSONArray不是可迭代的对象,因此我尝试将JSONObject直接放入特定的索引中,但得到的结果相同。

这段代码是我的硕士论文的一部分,我在这些细节上花了很多时间...:/

我真的很期待您的回答。

晚安,

比约恩

编辑:我的JSONObject是存储在android手机中的SMS。 我将它们转换为JSONObject的功能如下:

public JSONObject toJSON() {
    JSONObject jSMS = new JSONObject();
    try {
        jSMS.put("id", this.id);
        jSMS.put("thread", this.thread);
        jSMS.put("rEmail", this.rEmail);
        jSMS.put("rPhoneNum", this.rPhoneNum);
        jSMS.put("sPhoneNum", this.sPhoneNum);
        jSMS.put("sName", this.sName);
        jSMS.put("date", this.date);
        jSMS.put("content", this.content);
        jSMS.put("type", this.type);
    } catch (JSONException e) {
        Log.wtf("::trace", Log.getStackTraceString(e));
    }
    return jSMS;
}

EDIT1:当我遍历我的JSONArray并使用JSONArray.getJSONObject(i).toString()一切正常,它将向我显示数组的全部内容,当我调用JSONArray.toString()方法时,它仅向我开头JSONArray。 我真的开始对此感到厌倦。 我不知道什么会导致这种错误。

请参阅Logcat的大小限制以及如何更改其容量?

每个logcat条目都限制为一定数量的字符(取决于您的android设备)。 对于单个logcat条目而言,很可能JSON对象285个对象的长度太长,因此它只在中间切入。 我认为您的json对象没有问题(或者如果存在,那不是您找到的对象)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM