js判断字符串是否为json格式或能转为json对象?

时间: 作者:admin 浏览:

一、基础

export default{
    methods:{
        canParseToJson(str, parseFlag){
            try{
                if(typeof JSON.parse(str)==="object" && Object.prototype.toString.call(JSON.parse(str))==="[object Object]"){
                    return parseFlag===true?JSON.parse(str) : true
                }
            }catch(e){}
            return false
        }
    }
}

例子:

this.canParseToJson("{a:1}")//true
this.canParseToJson("{a:1}", true)//{a:1}
this.canParseToJson("aaaaa")//false

二、进阶

为了将方法写的更健壮,str参数不一定就只能是字符串,如果直接给过来一个json,也直接返回true或者本身,用以应对后端返回的数据可能是一个json:

{code:200, msg:"成功", list: []}

又或者是json字符串:

'{"code":200,"msg":"成功","list":[]}'

最终代码如下:

export default{
    methods:{
        canParseToJson(str, parseFlag){
            if(this.isJson(str)){
                return parseFlag?str : true
            }
            try{
                return parseFlag?JSON.parse(str) : this.isJson(JSON.parse(str))
            }catch(e){}
            return false
        },
        isJson(obj){
            return typeof obj === 'object' && Object.prototype.toString.call(obj) === '[object Object]'
        }
    }
}
前端新手交流群
欢迎加入web前端新手交流qq群:
734802480(已满)、 794324979

更多文章

栏目文章


Copyright © 2014-2022 seozhijia.net 版权所有-粤ICP备13087626号-4