SOURCE

function jsonParseSafely(json, defaultValue) {
  // TODO
  data = json.replace("\\", "");
  let obj = {}
  try {
    obj = JSON.parse(data)
  } catch (error) {
    return defaultValue || {}
  }
  
  for (const key in obj) {
    if (typeof(key) !== 'string') {
      return defaultValue || {}
    }
  }
  return obj
}

// 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 则输出 {}

var input = "{ url: 1 }"
const result = jsonParseSafely(input, { url: 0 }); // 输出 { url: 0 },非法 json 支持自定义返回值

console.log(result)
console 命令行工具 X clear

                    
>
console