簡體   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