JSON.parse()特别是运算符

时间:2015-06-12 22:45:08

标签: javascript json parsing

有人解释为什么当我尝试在运算符上使用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

3 个答案:

答案 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类型和对象。您正在寻找evaleval执行字符串,就像它是javascript代码一样。

Information on eval

Information on valid json