美文网首页
判断字符串是不是JSON字符串

判断字符串是不是JSON字符串

作者: 索哥来了 | 来源:发表于2020-05-08 16:30 被阅读0次

    问题:前端同学在开发中,可能会遇到下面的问题,后台同事返回的某个字段,可能是普通字符串,可能是json字符串,这种情况不科学,但是也确实遇到过。

        // 获取数据type
        getDataType: (data) => {
            return Object.prototype.toString.call(data).toLowerCase().slice(8, -1);
        },
    
        // 判断字符串 是不是 json字符串
        isJsonStr: function(str) {//下面用到this,这里不能箭头
            if(str && typeof str == 'string'){
                try{
                    return this.getDataType(JSON.parse(str));
                }catch(e){
                    console.log(e);
                    return false;
                }
            }else{
                return false;
            }
        },
    

    下面是运行结果:

    console.log('-number-----------------------')
    console.log(this.$cf.isJsonStr(123)); //false,首先就不是字符串,下面的很多false同理
    console.log(this.$cf.isJsonStr('123')); //number
    console.log('-null-----------------------')
    console.log(this.$cf.isJsonStr(null)); //false
    console.log(this.$cf.isJsonStr('null')); //null
    console.log('-undefined-----------------------')
    console.log(this.$cf.isJsonStr()); //false
    console.log(this.$cf.isJsonStr(undefined)); //false
    console.log(this.$cf.isJsonStr('undefined')); //false(理由同下面'abc')
    console.log('-string-----------------------')
    console.log(this.$cf.isJsonStr('abc')); //fasle(进入catch,abc不能用JSON.parse)
    console.log(this.$cf.isJsonStr('"abc"')); //string
    console.log('-boolean-----------------------')
    console.log(this.$cf.isJsonStr(true)); //false
    console.log(this.$cf.isJsonStr('true')); //boolean
    console.log('-array-----------------------')
    console.log(this.$cf.isJsonStr('[]')); //array
    console.log(this.$cf.isJsonStr([])); //false
    console.log('-object-----------------------')
    console.log(this.$cf.isJsonStr('{}')); //object
    console.log(this.$cf.isJsonStr({})); //false
    console.log('------------------------')
    

    这样就能愉快的处理返回回来的数据了。

    相关文章

      网友评论

          本文标题:判断字符串是不是JSON字符串

          本文链接:https://www.haomeiwen.com/subject/eznfnhtx.html