解析包含换行符的JSON

Pre*_*eli 24 javascript json

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

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

这会产生"意外令牌"错误.我需要以某种方式逃脱吗?

mad*_*end 31

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

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

JSFiddle:链接

  • 赞成这个答案,因为它包含额外的"解释":P (2认同)
  • @Throoze - 是的,有.JSON.stringify(str)将返回一个字符串,其中包含`str`的​​带引号的转义JS字符串文字.例如,`JSON.stringify("\n").length`计算结果为'4`,因为返回的字符串将有两个引号,一个反斜杠和一个`n`,就像传入它的文字一样. (2认同)

Dan*_*ker 5

尝试:

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