2014-01-12 85 views
1

我通常使用下面的代碼來解析JSON字符串:安卓:解析雙引號內JSON字符串

JSONObject jobj = new JSONObject(message); 
strmsg = jobj.getString("text"); 

當數據就像下面,它的偉大工程:

{"emailAddress": "[email protected]"} 

突然之間,我遇到了一些其他數據進來時的問題。解析失敗了,當我調試時,我發現字符串如下所示:

"{\"emailAddress\":\"[email protected]\」}" 

顯然,我得到一個雙引號內的JSON字符串。 2個快速問題: 1)這是正常的,應該JSONObject能夠解析它嗎? 2)如果沒有,建議如何處理這個問題?

回答

2

這似乎是JSON一代中的錯誤。 JSON實際上應該在這裏拋出一個解析錯誤。如果您無法改變方式,則會生成JSON字符串,您需要手動清理它。刪除大括號和deescape報價周圍的引號(你可以通過simplay調用 jsonString.replace(「\\」「,」\「」); ,而這看起來很複雜,轉義是必要的...

String test = "\"{\\\"emailAddress\\\":\\\"[email protected]\\\"}\""; 
test.replace("\\\"", "\""); 
+0

是啊,這正是我結束編碼了,我試圖避免寫我自己的功能,並使用現有的庫的另一件事我必須做的是修剪正面和背面的引號。謝謝! – user3133317

3

從兩側修剪雙引號:。

strmsg.replaceAll("^\"|\"$", "")