(原) Javascript Json判断的坑

原创文章,请后转载,并注明出处。

后端传来的数据需要判断是否为json格式,用以下代码:

function isJSON(str) {
    if (typeof str == 'string') {
        try {
            JSON.parse(str);
            console.log(str,"true")
            return true;
        } catch(e) {
            console.log(str,"false")
            return false;
        }
    }
    return false;
}

测试如下:

  1. 传入json格式字符串,返回true
  2. 传入字符串 “abc”,返回false
  3. 传入字符串 “中国” ,返回false
  4. 传入字符串 “12345” ,返回true

注意第4项,当传入的是数字格式的字符串时,JSON.parse函数不会出错,所以函数返回true。即此时函数会放为数字字符串是符合json格式的。

看到之前有网友提到: JSON.parse(‘1’)返回为1,类型为number

相关文章