我有一个要求,我从其他API获取json字符串,此字符串可能是也可能不是有效的JSON字符串。如何检查JSON字符串是否有效,如果它无效,我该如何使其有效?我的意思是,是否有某些字符需要转义,如果它们没有被转义,那么我们在解析时会出错。我们是否有任何API可以使JSON字符串有效?
我得到了检查JSON字符串是否有效的代码
的Javascript
if (/^[\],:{}\s]*$/.test('{section : "ABCDEFGHI"JKLMNOP"}'.replace(/\\["\\\/bfnrtu]/g, '@').
replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
console.log('valid');
}else{
console.log('Not a valid');
}
答案 0 :(得分:0)
这是一个非常重要的问题。这完全取决于你对"有效"的定义。 JSON。您可以通过转义引号字符并将其视为字符串来将任何字符串转换为有效的json。例如,
{"foo":"bar
可以成为
{"stringified":"{\"foo\":\"bar"}
它完全有效,但它也可能成为
{"foo":"bar"}
或
{"foo":"barcelona"}
我建议您再次查看您的域名或在问题中提供特定的问题集。