我使用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?或者我自己会解析这个? (我上面的例子是一个简单的例子 - 实际字符串相当大)
答案 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))
当然,我需要查看更多需要纠正的内容,以提供完整的解决方案。