Javascript JSON.parse与\u0000

Javascript JSON.parse与\u0000,javascript,json,Javascript,Json,使用JSON.parse: 这项工作: JSON.parse('{\"V\":\"\u008c\"}') // => { V: '' } 这并不是: JSON.parse('{\"V\":\"\u0000\"}') // >> SyntaxError: Unexpected token in JSON at position 6 这里的概念是什么?您可以在中找到一些信息。例如: 2.5。字符串 字符串的表示类似于C语言中使用的约定 编程语言家族。字符串以开头和结尾 引号

使用JSON.parse:

这项工作:

JSON.parse('{\"V\":\"\u008c\"}') // => { V: '' }
这并不是:

JSON.parse('{\"V\":\"\u0000\"}') // >> SyntaxError: Unexpected token   in JSON at position 6

这里的概念是什么?

您可以在中找到一些信息。例如:

2.5。字符串

字符串的表示类似于C语言中使用的约定 编程语言家族。字符串以开头和结尾 引号。所有Unicode字符都可以放在 除必须转义的字符外的引号: 引号、反向索利多士和控制字符(U+0000 通过U+001F)

现在,与您的问题相关,您只需对unicode字符上的
\
进行转义,即可进行解析:

JSON.parse('{"V":"\\u0000"}')
结果:
{V:�"}


仅供参考,无需在javascript中单个带引号的字符串中转义

唯一的问题是,您将JSON表示为javascript字符串文字。这是有效的JSON:

{"V":"\u0000"}
但是,这是一个Javascript字符串,包含值
{“V”:“}

Javascript已经在解释
\u0000
转义序列和
JSON。parse
因此试图解析包含
NUL
字节的JSON字符串,这是非法的(
NUL
必须转义)

您尝试的JSON的实际Javascript字符串文字表示为:

JSON.parse('{"V":"\\u0000"}')
                  ↑
JSON.parse('{"V":"\\u0000"}')
                  ↑