JSON.parse('["foo", "bar\\"]'); //Uncaught SyntaxError: Unexpected end of JSON input
当我查看上面的代码时,一切看起来都是正确的。它是一个JSON字符串,我认为它可以转换回包含字符串" foo"和字符串" bar \"的数组。因为第一个反斜杠逃脱了第二个反斜杠。
那么为什么会出现意外的输入结束?我假设它与反斜杠有关,但我无法弄明白。
答案 0 :(得分:4)
您的代码似乎应该是:
JSON.parse('["foo", "bar\\\\"]');
您的Json对象确实是["foo", "bar\\"]
但如果您希望它在JavaScript代码中表示,则需要再次转义\
个字符,因此有四个\
个字符。
问候
答案 1 :(得分:0)
你需要双重逃脱。使用模板文字和String.raw
,您可以:
JSON.parse(String.raw`["foo", "bar\\"]`);