判断字符串是否为正确的json格式

var input = "{\"url\":\"MBU0016G7G004SS00081\",\"data\":{\"a\":1,\"b\":[2,3]}}";
const result = jsonParseSafely(input); // 输出 { "url": "MBU0016G7G004SS00081", "data": { "a": 1, "b": [ 2, 3 ] } }

var input = "{ url: 1 }";
const result = jsonParseSafely(input); // 非法 json 则输出 {}

function isJson(str) {

  if(typeof str == 'String') {

    try{

      var obj = JSON.parse(str)

      if(typeof obj =='Object' && obj){

        return true;

      } else {

        return false;

      }

    } catch(e){

      console.log('not json');

      return false;

    }

  }

}

 

function  jsonParseSafely(str){

  if(isJson(str)){

    return JSON.parse(str);

  } else {

    return {};

  }

}

 

posted @ 2022-02-19 15:10  暴龙机甲兽  阅读(502)  评论(0)    收藏  举报