为什么会这样:
JSON.parse('');
产生错误?
Uncaught SyntaxError: Unexpected end of input
如果只是返回null
岂不是更合乎逻辑?
编辑:这不是链接问题的重复。虽然最小有效 json 的主题与这个问题有关,但它并没有解决“为什么”。
最佳答案
由于空字符串不是有效的 JSON,因此 JSON.parse('')
返回 null
是不正确的,因为 "null"
是有效的 JSON。例如
JSON.parse("null");
返回 null
。无效的 JSON 也被解析为 null 是错误的。
虽然空字符串不是有效的 JSON,但两个引号是有效的 JSON。这是一个重要的区别。
也就是说一个包含两个引号的字符串和一个空字符串不是一回事。
JSON.parse('""');
将正确解析,(返回一个空字符串)。但是
JSON.parse('');
不会。
有效的最小 JSON 字符串是
空对象'{}'
空数组'[]'
为空的字符串'""'
一个数字,例如'123.4'
bool 值true 'true'
bool 值 false 'false'
空值'null'
https://stackoverflow.com/questions/30621802/