2012-07-18 42 views
1

我想解析一些JSON字符串,我已經成功,但有時當一個字符串拋出一個引號爲例如,「size_box」:「PO#45836 ,4587,3PLTS 48「x40」962LBS @ SHIPREADY BTWN 8 AM-1PM「,」我得到強制關閉錯誤,當它達到48「x40」962LBS,所以我的問題是,如何解析JSON格式鏈接,如果它有特殊?字符Android:JSON解析錯誤,因爲一個字符串包含「」

+0

無論產生這些字符串是否被破壞,都需要通過''''''''用'\''來修復。這需要從源頭完成 - 事後修復幾乎是不可能的。 – Squonk 2012-07-18 20:00:58

+0

啊我看到了,所以這看起來像是需要從服務器端修復的東西。謝謝Squonk,你能提出一個答案,我可以接受嗎? – 2012-07-18 20:16:14

+0

按要求添加答案。 – Squonk 2012-07-18 20:28:12

回答

1

無論是產生這些字符串被破壞,需要通過與\"逸出"被固定。

需要在源代碼完成 - 之後修復它幾乎是不可能的,因爲您將無法知道哪些引號會出現在那裏,哪些(我猜測)表示框中的大小英寸 - 48「x40」是48英寸x 40英寸是否正確?

只要服務器轉義這些引號,它就會正確解析。

+0

只要愛上一票,任何人甚至都懶得留下評論,爲什麼他們這樣做。 – Squonk 2012-07-19 07:25:54

+0

我剛剛爲此付出了努力! – 2012-07-25 23:44:43

0

引號"應在JSON字符串反斜槓\轉義

+1

哇你快速回復!現在這帶來了另一個問題,我不會總是知道一個字符串何時會包含引號。有沒有辦法可以覆蓋或什麼? – 2012-07-18 19:39:54

+0

Android有一個內置方法,['JSONObject.quote'](http://developer.android.com/reference/org/json/JSONObject.html#quote%28java.lang.String%29)。 – 2012-07-18 20:15:51

+0

謝謝你的建議彼得,但我已經走了另一條路線,並決定從服務器端修復它。 – 2012-07-18 20:24:54

-1

用其他字符代替引號,解析字符串,替換引號後面。

使用函數String replace(char oldChar, char newChar)