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