使用JSON.parse:
这有效:
JSON.parse('{\"V\":\"\u008c\"}') // => { V: '' }
这不是:
JSON.parse('{\"V\":\"\u0000\"}') // >> SyntaxError: Unexpected token in JSON at position 6
这里的概念是什么?
答案 0 :(得分:3)
您可以在R for Windows FAQ中找到一些信息。例如:
<强> 2.5。字符串强>
字符串的表示类似于C中使用的约定 编程语言家族。字符串的开头和结尾 引号。所有Unicode字符都可以放在 除了必须转义的字符之外的引号: 引号,反向实线和控制字符(U + 0000 通过U + 001F)。
现在,与您的问题相关,您只需要转义unicode字符上的\
以便解析工作:
JSON.parse('{"V":"\\u0000"}')
结果:{V: "�"}
只是为了您的信息,无需在javascript中的单引号字符串中转义"
。
答案 1 :(得分:0)
唯一的问题是您将JSON表达为Javascript字符串文字。这是有效的JSON:
{"V":"\u0000"}
但这是一个包含值{"V":"<NUL>"}
的Javascript字符串:
'{\"V\":\"\u0000\"}'
Javascript已经解释了\u0000
转义序列,JSON.parse
因此试图解析其中包含NUL
字节的JSON字符串,这是非法的(NUL
必须逃脱)。
您尝试的JSON的实际Javascript字符串文字表示形式为:
JSON.parse('{"V":"\\u0000"}')
↑