0

运行 Firefox 23.0.1,我有以下代码段:

var foo = '{  "success": false,  "errtype": "barf",  "message": "my message\n"}';

var what = JSON.parse(foo);
console.log(what);

在 Firebug Javascript 窗口中运行它,或者从我的网页中查看控制台日志,我得到 SyntaxError: JSON.parse: bad control character in string literal。

但这对我来说似乎是有效的 JSON,每个http://www.json.org/并且它也通过了这里的验证器: http://jsonlint.com/

当我删除嵌入在“我的消息”末尾的“\n”时,Firefox 中的问题就消失了。其他浏览器没试过。

这是 Firefox 中的错误吗?

4

1 回答 1

3

您将需要使用另一个反斜杠来转义换行符中的反斜杠

var foo = '{  "success": false,  "errtype": "barf",  "message": "my message\\n"}';

请参阅如何处理 JSON 中的换行符?

于 2013-08-28T05:18:36.543 回答