小编典典

在JavaScript中解析格式错误的JSON

json

感谢您的光临!

背景

我正在编写一些使用JSON服务的前端代码,该服务返回格式错误的JSON。具体来说,键没有用引号引起来:

{foo: "bar"}

我无法控制该服务,因此我要像这样纠正此问题:

var scrubbedJson = dirtyJson.replace(/(['"])?([a-zA-Z0-9_]+)(['"])?:/g, '"$2": ');

这给了我格式正确的JSON:

{“ foo”:“ bar”}

问题

但是,当我致电时JSON.parse(scrubbedJson),仍然出现错误。我怀疑这可能是因为整个JSON字符串都用双引号引起来,但我不确定。

更新

已经解决了-上面的代码工作正常。我在返回的JSON正文中有一个流氓单引号。我从那里得到了一切,现在一切都解析了。谢谢。任何帮助,将不胜感激。


阅读 255

收藏
2020-07-27

共1个答案

小编典典

这样的事情可能有助于修复json ..

$str='{foo:"bar"}';
echo preg_replace('/({)([a-zA-Z0-9]+)(:)/','$1"$2"${3}',$str);

输出:

{"foo":"bar"}

编辑:

var str='{foo:"bar"}';
str.replace(/({)([a-zA-Z0-9]+)(:)/,'$1"$2"$3')
2020-07-27