为什么JSON.parse与空字符串失败?
这个问题在这里已经有了答案:
由于空字符串不是有效的JSON,因此JSON.parse('')
返回null
是不正确的,因为"null"
是有效的JSON。 例如
JSON.parse("null");
返回null
。 将无效的JSON也解析为null将是一个错误。
虽然空字符串无效JSON两个引号是有效的JSON。 这是一个重要的区别。
也就是说,包含两个引号的字符串与空字符串不同。
JSON.parse('""');
会正确解析,(返回一个空字符串)。 但
JSON.parse('');
将不会。
有效的最小JSON字符串是
空对象'{}'
空数组'[]'
空的字符串'""'
一个数字,例如'123.4'
布尔值'true'
布尔值'false'
空值'null'
使用try-catch避免它:
var result = null;
try {
// if jQuery
result = $.parseJSON(JSONstring);
// if plain js
result = JSON.parse(JSONstring);
}
catch(e) {
// forget about it :)
}
无论是对象{}
,数组[]
,字符串""
还是数字类型(int,float,double), JSON.parse
需要字符串内的有效表示法。
如果解析的内容有可能是空字符串,那么开发人员应该检查它。
如果它构建在函数中,它会增加额外的周期,因为内置的函数预计会非常高效,所以不要为比赛情况对它们进行编程。
链接地址: http://www.djcxy.com/p/8003.html