JSON響應應該是這樣的:無法解析JSON響應
「{\」 syncrequest \ 「:{\」 用戶\ 「:{\」 @的xmlns:XSI \ 「:\」 http://www.w3.org/2001/XMLSchema-instance \ 「\ 」活性\「:\ 」真\「,\ 」basedataset \「:\ 」假\「},\ 」syncversion \「:\ 」89 \「,\ 」syncdata \「:[{\」 操作:「INSERT OR REPLACE \」,\「table \」:\「WSInformation \」,\「rows \」:[{\「WS_ID \」:\「71 \」,\「WS_ParentOwn \」 :null,\「WS_Notes \」:\「Notes \\」for \\「VistaStore Fleet \\」save \「,\」CC_ID \「:\」1 \「,\」Record_Instance \「:\」1 \「,\」Record_LastModified \「:\」2013-11-26T07:51:35.203 \「}]}]}}」
來自服務器的字符串格式的響應。當我使用
JsonObject jObject =new JsonObject(string);
其得到錯誤像串未終止字符轉換上面的字符串JSON格式。
任何機構可以幫助我解決上述問題。
由於事先
編輯:
從服務器來的響應是在輸入流的形式。
所以,我用了使用功能的輸入流轉換爲字符串:
IOUtils.readStream(instream);
然後響應字符串想:
串響應 =
「{\ 「syncrequest \」:{\「user \」:{\「@ xmlns:xsi \」:\「http://www.w3.org/2001/XMLSchema-instance \」,\「active \」:\「true \」,\「basedataset \」:\「 「},\」 syncversion \ 「:\」 89 \ 「\ 」syncdata \「:[{\ 」操作\「:\」 INS ERT 或 REPLACE \「,\」table \「:\」WSInformation \「,\」rows \「:[{\」WS_ID \「:\」71 \「,\」WS_ParentOwn \「:null,\」 \ \「VistaStore Fleet \\」save \「,\」CC_ID \「:\」1 \「,\」Record_Instance \「:\」1 \「,\」WS_Notes \ Record_LastModified \ 「:\」 2013-11-26T07:51:35.203 \ 「}]}]}}」
通過使用以下函數來形成JSON對象,我除去雙引號。
res = response.substring(1,response.length() - 1);
並使用下面的函數刪除字符串中的雙引號。
res = response.replace(「\\」「,」\「」);
發佈你的http連接代碼 – SathishKumar
你爲什麼要逃脫蜱?解析器不能處理這個,因爲這不是有效的JSON。 – Baschi
是的,對此+1,我不在我的JSON上使用「\」並且一切正常 – Poutrathor