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


how to get around newlines with jQuery.parseJSON

当使用jQuery.parseJSON()解析json时,我得到这个错误

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

快速搜索显示这是由 json 字符串中的换行符引起的。

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

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

根据 v8 错误跟踪器 (http://code.google.com/p/v8/issues/detail?id=616),这实际上是正确的行为:

"JSON 字符串中不允许使用换行符(没有控制字符,请参阅,例如,JsonStringCharacter Production of ECMA262 5ed, Section 15.2.1.1)。

所以这实际上取决于你想做什么 - 在这种情况下,由于你需要换行符,你需要在执行 json 解析之前转义它们:

//myjsonobject contains the json object
var obj = jQuery.parseJSON(myjsonobject.replace(/'n/g,"''n"));