如何在JSON中转义反斜杠?

pea*_*atb 15 javascript firefox json

我使用Firefox的本机JSON.parse()来解析一些包含正则表达式作为值的JSON字符串,例如:

var test = JSON.parse('{"regex":"/\\d+/"}');
Run Code Online (Sandbox Code Playgroud)

上面的'\ d'引发了JSON.parse()的异常,但是当我使用eval(这是我试图避免的)时工作正常.

我想要的是保留正则表达式中的'\' - 是否有一些其他JSON友好的方法来逃避它?

Nic*_*ver 15

你需要逃避已经在那里的转义反斜杠:)这样:

var test = JSON.parse('{"regex":"/\\\\d+/"}');
Run Code Online (Sandbox Code Playgroud)

你可以在这里测试一下:http://jsfiddle.net/h3rzE/

  • 谢谢,这是一个魅力!你介意解释为什么我需要逃脱逃跑吗?我原本以为逃避"\ b"一次就足够了解析器的目的......是否需要在幕后进行另一层解析?另外,感谢jsfiddle链接 - 我在http://json.parser.online.fr/上使用解析器进行测试,但是当我尝试"\\\\ d"时它告诉我其中一个反斜杠需要被逃脱! (4认同)