在JavaScript中是否有这样的方法:
$ cat test.json
{"body":"\u0000"}
$ python3 -c 'import json; print(json.load(open("test.json", "r")))'
{'body': '\x00'}
注意,上面的数据只有一个\
(不需要转义)。所以在JavaScript中有以下情况:
^{pr2}$
由于可能有来自二进制源(websocket)的UTF-8数据,可以像上面第一个python示例那样直接处理这些数据吗?在
Tags:
从}的字符串字符被视为控制字符,根据RFC-7159,不允许在JSON中使用字符,并且必须进行转义,如in section 7。在
\u0000
到{您要做的是将未转义的控制字符放入JSON中,这显然是不可接受的,您必须首先对其进行转义,没有一种语言接受它,甚至Python也是如此。在
正确的答案是将UTF-8编码值放入包含JSON格式的字符串中。在
这是一个正确的JSON,它将由任何语言的JSON解析器解析,即使是JavaScript:
这是一个不正确的JSON(将
^{pr2}$[NUL]
视为NUL控制字符,因为它不能用文本表示):这就是}不起作用的原因
JSON.parse('{"body":"\\u0000"}')
起作用而{希望,它能澄清你的测试出了什么问题。在
相关问题 更多 >
编程相关推荐