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

arv*_*sim 4 javascript php jquery

使用 jQuery.parseJSON() 解析 json 时,出现此错误

SyntaxError: JSON.parse: bad control character in string literal
Run Code Online (Sandbox Code Playgroud)

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

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

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

Lia*_*ire 6

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

“JSON 字符串中不允许有换行符(没有控制字符,请参见,例如,ECMA262 5ed 的 JsonStringCharacter 产品,第 15.2.1.1 节)。”

所以这真的取决于你想要做什么 - 在这种情况下,因为你需要换行符,你需要在进行 json 解析之前转义它们:

//myjsonobject contains the json object

var obj = jQuery.parseJSON(myjsonobject.replace(/\n/g,"\\n"));
Run Code Online (Sandbox Code Playgroud)