一、基础
export default{ methods:{ canParseToJson(str, parseFlag){ 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 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]' -->