2017-02-16 60 views
2

双引号,我当它试图EVAL一些JSON在屏幕上收到错误信息,它给我的错误意想不到的标识..JSON逃脱不工作

的数据导致的问题,它是如何回来的时候我检查JSON响应是:

“itemDescription”: “标准\” B \ “RED BOX”,

我使用Java下面的代码来处理双引号:

itemDescription = itemDescription.replaceAll("\\r|\\n", ""); 
itemDescription = itemDescription.replaceAll("\"", "\\\\\""); 
itemDescription = itemDescription.replaceAll("'", "'"); 

任何想法,为什么这不会工作?如果我删除双引号,我不会再有任何错误。

项目说明,如 “itemDescription”: “标准的16 \” RED BOX”经过精..

感谢

+0

你用什么来评估Json?你使用'eval()'?或'JSON.parse()'? –

+0

eval()我正在使用 – kageoni

+0

它只是由于某种原因逃避第一个双引号,看着错误.. – kageoni

回答

2

您在第2行需要两个反斜杠:

itemDescription = itemDescription.replaceAll("\"", "\\\\\\\""). 

以便"被替换为\\\"而不是\\"

0

尝试使用StringEscapeUtils

itemDescription = StringEscapeUtils.escapeJson(itemDescription);