为什么JSON.parse与空字符串失败?

这个问题在这里已经有了答案:

  • 什么是最低有效的JSON? 8个答案

  • 由于空字符串不是有效的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

    上一篇: Why does JSON.parse fail with the empty string?

    下一篇: What does "javascript:void(0)" mean?