我有这个字符串
{"cb":15,"cl":12,"cr":18,"ct":3,"id":"6yIGexevqu9RGM:","ml":{"366":{"bh":96,"bw":112,"o":0},"454":{"bh":93,"bw":88,"o":0}},"oh":500,"os":"42KB","ou":"http://albums.songspk.link/images/cover/55553137088b0humnava.jpg","ow":500,"pt":"Humnava
- Hamari Ahduri Kahani (2015) Download Mp3 Songs
...","rh":"albums.songspk.link","ru":"http://albums.songspk.link/audio-mp3-single-track/humnava_hamar_adhuri_kahani_mp3_song","s":"","th":112,"tu":"https://encrypted-tbn2.gstatic.com/images?q\u003dtbn:ANd9GcTlkE4gq7VQB5vB8-35jIF8YBh5KP14GsquWY1allab1-KnL07cREXXajV0_w","tw":112}
如果您将其复制并粘贴到JSONLINT,您会看到它因换行而显示错误。如果我删除换行符,则会解决错误。有没有办法在JavaScript中将字符串解析为JSON?
答案 0 :(得分:0)
我找到了解决问题的方法......
http://juristr.com/blog/2010/05/n-will-break-your-json-jquery-wcf/
在这篇文章中...有这个函数...对于我的事情,我用“”[空格]改变了“\ n”,因为我只想要解析JSON。
网站功能
function escapeNewLineChars(valueToEscape) {
if (valueToEscape != null && valueToEscape != "") {
return valueToEscape.replace(/\n/g, "\\n");
} else {
return valueToEscape;
}
}
我现在正在使用
function escapeNewLineChars(valueToEscape) {
if (valueToEscape != null && valueToEscape != "") {
return valueToEscape.replace(/\n/g, " ");
} else {
return valueToEscape;
}
}
我的问题解决了......我将“\ n”替换为“”......
答案 1 :(得分:-1)
David Thomas没有将字面换行作为字符串值的一部分提到“char”,因此您不能只插入字符串。您可以改为使用转义序列\n
。
答案 2 :(得分:-1)
JSON字符串中不会出现裸露的换行符;你必须逃避他们。根据字符串的编码方式,正确的转义序列可以是\n
,\r\n
或\r
。最近这一天是不太可能的,但如果您可能正在处理在OSX之前的Mac上创建的文件,则可能会发生这种情况。
然而,它发生了,您需要浏览字符串并确保已转义其中的任何换行符,然后将 放入JSON文件中。或者,您可以从字符串中删除所有换行符,但这可能对您的应用程序不可行。