如何使 JSON 字符串有效(如果不是)

How to make a JSON String Valid, if it's not?

本文关键字:如果不 有效 何使 JSON 字符串      更新时间:2023-09-26

我有一个要求,我从其他 API 获取 json 字符串,这个字符串可能是也可能不是有效的 JSON 字符串。如何检查 JSON 字符串是否有效,如果无效,如何使其有效?我的意思是问的是,是否有某些字符需要转义,如果它们没有转义,那么我们在解析时会出现错误。我们是否有任何 API 可以使 JSON 字符串有效?

我得到了检查 JSON 字符串是否有效的代码

爪哇语

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');
}

这是一个不平凡的问题。这完全取决于您对"有效"json的定义。您可以通过转义引号字符并将其视为字符串来将任何字符串转换为有效的 json。例如

{"foo":"bar

可以成为

{"stringified":"{'"foo'":'"bar"}

它是完全有效的,但它也可能成为

{"foo":"bar"}

{"foo":"barcelona"}

我建议再看看你的领域,或者在问题中提供一个特定的问题集。