我已经生成了一些 JSON,并试图将其传入 JavaScript 中的对象中。但是出现错误。代码如下:
var data = '{"count" : 1, "stack" : "sometext\n\n"}';
var dataObj = eval('('+data+')');
错误如下:
unterminated string literal
使用 JSON.parse(data)
,我在 Chrome 中看到类似的错误消息:“ Unexpected token ↵
”,在 Firefox 和 IE 中看到“ unterminated string literal
”。
当我在 \n
之后取出 sometext
时,两种情况下的错误都会消失。我不知道为什么 \n
使 eval
和 JSON.parse
失败?
原文由 polarbear 发布,翻译遵循 CC BY-SA 4.0 许可协议
这样应该可以满足你的需求:
对字符串中的
\
进行转义(将其变成双\
),否则它将成为 JSON 源中的换行符,而不是 JSON 数据。