这是我要加载或解析的 JSON 字符串:
json_str = '[{"executable_path": "C:\\GCafeClient\\CafeClient.exe", "arguments": "-package 100003"}]'
如果我测试它,这是有效的 in json formatter或here (这也是有道理的——我已经转义了反斜杠。
但是当我在 Python 2.7 中执行 json.loads(json_str)
或在 Chrome 中的 JavaScript 中执行 JSON.parse(json_str)
时。我遇到错误:
ValueError: Invalid \escape: line 1 column 25 (char 24)
和
Uncaught SyntaxError: Unexpected token G
如果我这样说,那么它对两者都适用:
json_str = '[{"executable_path": "C:\\\\GCafeClient\\\\CafeClient.exe", "arguments": "-package 100003"}]'
为什么会这样?
最佳答案
您需要转义“\”两次,第一次是针对 Python/JavaScript 文字,第二次是针对 JSON。
因此 "C:\\GCafeClient"
将计算为 "C:\GCafeClient"
,它不被接受 JSON,因为它包含未转义的 '\' 并且将抛出一个错误。
另一方面,"C:\\\\GCafeClient"
将计算出 JSON 为 "C:\\GCafeClient"
,因此 '\' 是逃脱并接受。
关于javascript - JavaScript 和 Python 2.7 中 JSON 字符串中的转义反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35548542/