有人可以解释为什么当我尝试在运算符“+”、“-”、“*”、“/”上使用 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
最佳答案
在 JSON 中,字符串需要用双引号引起来。因此,如果您想要一个包含运算符的 JSON 字符串,则需要将其加引号。
var json = '"+"';
var result = JSON.parse(json);
alert(result);
这将提醒 +
。
单引号用于 Javascript 文字,双引号是 JSON 语法的一部分。
关于javascript - JSON.parse() 特别是运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30813228/