有人解释为什么当我尝试在运算符上使用JSON.parse()" +"," - "," *", " /"它返回:
SyntaxError: Unexpected token +
SyntaxError: Unexpected token -
SyntaxError: Unexpected token *
SyntaxError: Unexpected token /
我正在传递一个有效的字符串,但它不会自动返回运算符。文档中没有任何内容可以解释为什么这是无效的:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
感谢任何帮助。谢谢。
为了清晰起见编辑*
在文档中,以下案例均有效。它们是传递给JSON.parse()的任意字符串。您可以在控制台中验证这些示例。我的问题是为什么将运算符作为字符串传递不会返回运算符。
JSON.parse('{}'); // {}
JSON.parse('true'); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null'); // null
答案 0 :(得分:1)
在JSON中,字符串必须是双引号。因此,如果您需要包含运算符的JSON字符串,则需要引用它。
var json = '"+"';
var result = JSON.parse(json);
alert(result);

这会提醒+
。
单引号用于Javascript文字,双引号是JSON语法的一部分。
答案 1 :(得分:0)
JSON它是一个包含键值对的字符串。 JSON.parse()
它是一个函数,它将返回带有以key命名的属性的对象,这意味着您不能使用+, - ,/,*作为对象属性的名称。这就是您收到此错误的原因。
答案 2 :(得分:0)
运算符无效json。 JSON.parse
用于将json格式的字符串转换为corressponding javascript类型和对象。您正在寻找eval
。 eval
执行字符串,就像它是javascript代码一样。