如何处理JSON中的换行符?我已经生成了一些JSON,我试图将它拉入JavaScript中的对象。我一直在收到错误。这就是我所拥有的var data = '{"count" : 1, "stack" : "sometext\n\n"}';var dataObj = eval('('+data+')');这给了我一个错误unterminated string literal有了JSON.parse(data),我看到类似的错误消息:Unexpected token ↵Chrome中的“ unterminated string literal”和Firefox和IE中的“ ”。当我取出\n后sometext,错误消失了两种情况。我似乎无法弄清楚为什么\n制造eval和JSON.parse失败。
3 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
我想这就是你想要的:
var data = '{"count" : 1, "stack" : "sometext\\n\\n"}';(您需要转义字符串中的“\”(将其转换为双 - “\”),否则它将成为JSON源中的换行符,而不是JSON数据。)
LEATH
TA贡献1936条经验 获得超7个赞
你需要有它取代的功能\n来\\n的情况下,data是不是一个字符串文字。
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"}添加回答
举报
0/150
提交
取消
