2012-07-18 27 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)