这是我要加载或解析的JSON字符串:

json_str = '[{"executable_path": "C:\\GCafeClient\\CafeClient.exe", "arguments": "-package 100003"}]'


如果我对in json formatterhere进行测试,则这是有效的(也很有意义-我已经转义了反斜杠。

但是当我在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",因此'\'被转义并被接受。

10-06 12:27