Есть в любом случае сделать это в JavaScript:JSON.parse без побега
$ cat test.json
{"body":"\u0000"}
$ python3 -c 'import json; print(json.load(open("test.json", "r")))'
{'body': '\x00'}
Обратите внимание, что данные выше только один \
(не нужно экранировать). Таким образом, у вас есть следующая ситуация в JavaScript:
JSON.parse('{"body":"\\u0000"}') // works
JSON.parse('{"body":"\u0000"}') // does not work
С потенциально любые данные UTF-8 пришедшего из двоичного источника (WebSocket), может эти данные будут обрабатываться непосредственно, как в первом примере питона выше?
В Javascript, как и в Python, '' \ '' имеет особое значение при определении строки. Вы должны удвоить его до '' \\ '' для удаления, чем для специального значения. * Результирующее строковое значение * действительно будет иметь только одну обратную косую черту, за которой следует символ 'u' и т. Д. –
В файле' test.json' вы не определяете строковый литерал Python или Javascript, так что нет, обратная косая черта там. –
В ECMAscript 6 есть синтаксис ['String.raw'] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/raw), который может дать вам то, что вы хотите: '' JSON.parse (String.raw' {"body": "\ u0000"} ')' ' –