使用jQuery.parseJSON()解析json时,我收到此错误
SyntaxError: JSON.parse: bad control character in string literal
快速搜索会发现这是由json字符串中的换行引起的。
我使用json_encode()从PHP获取我的json字符串。
有没有办法以jQuery.parseJSON()不会抱怨并仍然保留换行信息的方式对其进行编码?
答案 0 :(得分:4)
根据v8错误跟踪器(http://code.google.com/p/v8/issues/detail?id=616),这实际上是正确的行为:
“JSON字符串中不允许使用换行符(没有控制字符,例如, JsonStringCharacter生产ECMA262 5ed,第15.2.1.1节。“
所以它实际上取决于你想要做什么 - 在这种情况下,因为你需要新行,你需要在执行json解析之前将它们转义:
//myjsonobject contains the json object
var obj = jQuery.parseJSON(myjsonobject.replace(/\n/g,"\\n"));