如何使用jQuery.parseJSON绕过换行符

时间:2012-08-15 08:41:01

标签: php javascript jquery

使用jQuery.parseJSON()解析json时,我收到此错误

SyntaxError: JSON.parse: bad control character in string literal

快速搜索会发现这是由json字符串中的换行引起的。

我使用json_encode()从PHP获取我的json字符串。

有没有办法以jQuery.parseJSON()不会抱怨并仍然保留换行信息的方式对其进行编码?

1 个答案:

答案 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"));