4

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

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

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

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

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

4

1 回答 1

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"));
于 2012-08-15T08:57:50.023 回答