现象
在使用JSON.parse
解析带有换行符\n
、 \r
或\r\n
的JSON字符串时会出错。
var str = '{ "text": "abc\nedf" }'
JSON.parse(str) // Uncaught SyntaxError: Unexpected token in JSON at position 14
解决办法
将JSON字符串中的换行符转义。
var str = '{ "text": "abc\nedf" }'
str = str.replace(/\n/g,"\\n").replace(/\r/g,"\\r")
JSON.parse(str) // {text: "abc↵edf"}
换行符会在控制台输出成一个回车箭头。