为什么这个字符串不可解析?

Gwa*_*r17 5 javascript parsing json escaping

JSON.parse('["foo", "bar\\"]'); //Uncaught SyntaxError: Unexpected end of JSON input
Run Code Online (Sandbox Code Playgroud)

当我查看上面的代码时,一切看起来都是正确的.它是一个JSON字符串,我认为可以转换回包含字符串"foo"的数组,字符串"bar \",因为第一个反斜杠会转义第二个反斜杠.

那么为什么输入意外结束呢?我假设它与反斜杠有关,但我无法弄明白.

Min*_*our 0

你需要双重逃脱。使用模板文字,String.raw您可以执行以下操作:

JSON.parse(String.raw`["foo", "bar\\"]`);
Run Code Online (Sandbox Code Playgroud)