在 JavaScript 和 Python 2.7 中的 JSON 字符串中转义反斜杠
Escape backslash in JSON String in JavaScript and Python 2.7
这是我要加载或解析的 JSON 字符串:
json_str = '[{"executable_path": "C:''GCafeClient''CafeClient.exe", "arguments": "-package 100003"}]'
如果我在 json 格式化程序或这里测试它是有效的(这也是有道理的——我已经转义了反斜杠。
但是当我在 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"
将计算为"C:''GCafeClient"
的JSON,因此''''被转义并接受。
我只是在这里发布我对这个问题的理解:
# python
json_str = '[{"executable_path": "C:''''GCafeClient''''CafeClient.exe", "arguments": "-package 100003"}]'
# which is equivalent to
json_str = r'[{"executable_path": "C:''GCafeClient''CafeClient.exe", "arguments": "-package 100003"}]'
# and JSON format requires backslash to be escaped
相关文章:
- 使用Jinja2的JavaScript转义字符串
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 如何转义字符串中的html实体
- “转义字符串”在Regex中是什么意思?(Javascript)
- 正在对java中的javascript字符串进行转义
- javascript中不带转义字符串的${variable}用法
- 如何存储包含反斜杠的字符串(无需手动双转义)
- 如何转义php中的新行字符以输出为javascript字符串值
- jQuery 字符串转义 onclick='deleteRow(item“+count+”)' 如何引用项目和计数
- 聊天应用程序字符串转义
- 将 FileReader.readAsBinaryString 转换为 Unicode 转义字符串
- 控制转义字符串
- 等价于str.decode('字符串转义')
- 从变量中的字符串转义 JavaScript 中的双引号
- Angular.js 中的部分 HTML 字符串转义
- 字符串转义,从文本文件中读取
- 将字符串转义为单引号字符串
- Javascript regex验证密码字符串(转义标点符号)
- JavaScript中的字符串转义
- 跨语言字符串转义