在PHP中处理JSONish事物

时间:2018-02-05 22:27:52

标签: javascript php json

我使用PHP来使用不属于我的服务。这项服务几乎(但不完全)完全不同于JSON(帽子提示,HGG)。

,即,最简单的形式,它们看起来像这样

{a: 8531329}

通过json_decode运行上述字符串将返回NULL

$foo = json_decode('{a: 8531329}');

问题在于a未被引用。

$foo = json_decode('{"a": 8531329}');

PHP(本地或通过常见的包装程序包)是否为我提供了解析此问题的方法"有效-javascript-but-not-valid-json"字符串到PHP数组或stdClass?或者我自己会解析这个? (我上面的例子是一个简单的例子 - 实际字符串相当大)

2 个答案:

答案 0 :(得分:5)

JSON5可能就是您所需要的:https://github.com/colinodell/json5

它处理允许JavaScript中的对象文字而JSON不存在的所有内容。

答案 1 :(得分:3)

如果我们将输入字符串定义为$i

$i='{a: 8531329}';

我们可以对其进行预处理,使其成为preg_replace的有效JSON:

json_decode(preg_replace('/\{([^:]*):/', '{"\1":', $i))

当然,我需要查看更多需要纠正的内容,以提供完整的解决方案。