javascript 判断是否为 json 字符串

Posted 猎人在吃肉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 判断是否为 json 字符串相关的知识,希望对你有一定的参考价值。

function isJSON(str) 
    if (typeof str != 'string')  // 1、传入值必须是 字符串
        console.log('It is not a string! [' + str + ']')
        return false;
    

    try 
        var obj = JSON.parse(str); // 2、仅仅通过 JSON.parse(str),不能完全检验一个字符串是JSON格式的字符串
        if (typeof obj == 'object' && obj)   //3、还必须是 object 类型
            console.log('转换成功:' + str);
            return true;
         else 
            console.log('转换失败:' + str);
            return false;
        

     catch (e) 
        console.log('error:[' + str + '] !!! ' + e);
        return false;
    
    return false;

测试代码:

isJSON('123');              // number
isJSON('aaaa');             // string
isJSON('"aaa"');
isJSON('true');             // 布尔
isJSON('["1","2"]');        // 数组
isJSON('["1211323","2"]'); // 数组 :含有字符
isJSON('[,"2"]');         // 数组 :子项包含对象
isJSON('[[,"2":"3"],"2"]'); // 多维数组

isJSON('name:"123"');     // 对象
isJSON('"name":"123"');   // json
isJSON('"name":"123",');  // 不规范的json

isJSON('');               // 空对象
isJSON('null');             // null
isJSON('Undefined');        // Undefined

运行结果:

以上是关于javascript 判断是否为 json 字符串的主要内容,如果未能解决你的问题,请参考以下文章

javascript 判断是否为 json 字符串

javascript 中如何判断是否是JSON格式的字符串

JavaScript判断对象是否相等

Javascript:如何判断 AJAX 响应是不是为 JSON

JavaScript判断对象是否为空对象的几种方法

判断字符串是否json字符串