如何在JSON中处理换行符?
如何在JSON中处理换行符?
我生成了一些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
”。
当我在sometext
后面删除\\n
时,两种情况下的错误都消失了。我似乎无法弄清楚为什么\\n
会让eval
和JSON.parse
失败。
admin 更改状态以发布 2023年5月21日
如果data
不是一个字符串字面量,你需要有一个函数将\n
替换为\\n
。
function jsonEscape(str) { return str.replace(/\n/g, "\\\\n").replace(/\r/g, "\\\\r").replace(/\t/g, "\\\\t"); } var data = '{"count" : 1, "stack" : "sometext\n\n"}'; var dataObj = JSON.parse(jsonEscape(data));
最终得到的dataObj
将会是
Object {count: 1, stack: "sometext\n\n"}