感谢您的光临!
我正在编写一些使用JSON服务的前端代码,该服务返回格式错误的JSON。具体来说,键没有用引号引起来:
{foo: "bar"}
我无法控制该服务,因此我要像这样纠正此问题:
var scrubbedJson = dirtyJson.replace(/(['"])?([a-zA-Z0-9_]+)(['"])?:/g, '"$2": ');
这给了我格式正确的JSON:
{“ foo”:“ bar”}
但是,当我致电时JSON.parse(scrubbedJson)
,仍然出现错误。我怀疑这可能是因为整个JSON字符串都用双引号引起来,但我不确定。
已经解决了-上面的代码可以正常工作。我在返回的JSON正文中有一个流氓单引号。我从那里得到了一切,现在一切都解析了。谢谢。任何帮助,将不胜感激。
这样的事情可能有助于修复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')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句