使用 jQuery.parseJSON() 解析 json 时,出现此错误
SyntaxError: JSON.parse: bad control character in string literal
快速搜索表明这是由 json 字符串中的换行符引起的。
我使用 json_encode() 从 PHP 获取我的 json 字符串。
有没有办法以 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 字符串中不允许换行(没有控制字符,例如,参见 ECMA262 5ed 的 JsonStringCharacter 生产,第 15.2.1.1 节)。”
因此,这实际上取决于您要做什么-在这种情况下,由于需要换行符,因此需要在进行 json 解析之前对其进行转义:
//myjsonobject contains the json object
var obj = jQuery.parseJSON(myjsonobject.replace(/\n/g,"\\n"));