下面是要加载或解析的JSON字符串:
json_str = '[{"executable_path": "C:\\GCafeClient\\CafeClient.exe", "arguments": "-package 100003"}]'
如果我测试它in json formatter或here,这是有效的(这也是有意义的——我已经跳过了反斜杠)。在
但是当我在python2.7中使用json.loads(json_str)
或者在Chrome中使用JavaScript中的JSON.parse(json_str)
时。我有错误:
以及
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"
,因此转义并接受“\”。在相关问题 更多 >
编程相关推荐