Javascript 解析包含新行字符的JSON

Javascript 解析包含新行字符的JSON,javascript,json,Javascript,Json,在我的网站中,我尝试将字符串转换为包含换行符的JSON JSON.parse('{"hallo":"line1\r\nline2","a":[5.5,5.6,5.7]}'); 这会产生“意外令牌”错误。我需要以某种方式转义吗?是的,您应该转义\n和\r,因为它们属于控制字符列表。可以找到需要转义的字符的完整列表。你的代码是 obj = JSON.parse('{"hallo":"line1\\r\\nline2","a":[5.5,5.6,5.7]}'); jsIDLE:试试: JSON.p

在我的网站中,我尝试将字符串转换为包含换行符的JSON

JSON.parse('{"hallo":"line1\r\nline2","a":[5.5,5.6,5.7]}');

这会产生“意外令牌”错误。我需要以某种方式转义吗?

是的,您应该转义
\n
\r
,因为它们属于控制字符列表。可以找到需要转义的字符的完整列表。你的代码是

obj = JSON.parse('{"hallo":"line1\\r\\nline2","a":[5.5,5.6,5.7]}');
jsIDLE:

试试:

JSON.parse('{"hallo":"line1\\r\\nline2","a":[5.5,5.6,5.7]}');

为什么要手动编写JSON?我不知道!json行是由另一个程序生成的,显然没有正确转义这些字符。在这种情况下,程序是正确的,您放置了
json.parse(“
”)手动。程序的输出可能是
{“hallo”:“line1\r\nline2”,“a”:[5.5,5.6,5.7]}
,这是正确的。您不需要从中生成javascript字符串,它本身在表达式上下文中已经是有效的javascript。您只需要
var a=programOutputstr
返回一个包含带引号的转义JS字符串文本的字符串。例如,
JSON.stringify(“\n”).length
的计算结果为
4
,因为返回的字符串将有两个引号,一个反斜杠和一个
n
,就像传递给它的文本一样。