Javascript 解析包含新行字符的JSON
在我的网站中,我尝试将字符串转换为包含换行符的JSONJavascript 解析包含新行字符的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.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=programOutput不,程序输出就是这一行,包括JSON.parse;无论是谁,显然都不知道JavaScriptUp的答案,因为它包含了一行额外的“解释”:PSilly me。我只是试图逃离\n,但完全忘记了\r。谢谢,它现在可以工作了。有没有一个函数可以转义这些字符?实际上,我必须“双重转义”才能让新行到达HTML。我从数据库中获取值,然后执行replaceAll(“\n”,“\\\\n”)。重新放置所有(“\r”,“\\\\r”),现在一切正常:D@Throoze-是的,有。stringify(str)将为str
返回一个包含带引号的转义JS字符串文本的字符串。例如,JSON.stringify(“\n”).length
的计算结果为4
,因为返回的字符串将有两个引号,一个反斜杠和一个n
,就像传递给它的文本一样。