【发布时间】:2013-12-19 08:19:06
【问题描述】:
示例代码:
<?php
$json = "['foo', 'bar']";
var_dump( json_decode($json) );
它适用于 PHP 5.5.3,但它不适用于较低的 PHP 版本
它在我的机器上运行 PHP 5.5.3 但在其他地方都失败了。
我知道这是不正确的 JSON,但我的网络服务给了我带有 ' 符号和 " 的 JSON
['foo', "bar", {'test': "crazy \"markup\""}]
如何在 PHP 5.3 中解析带撇号的 JSON 数据? 显然我要解析的原始 JSON 更复杂。
(我无法在生产服务器上升级我的 PHP,也无法从 web 服务获取正确的 JSON)
【问题讨论】:
-
恕我直言,ff PHP/5.5.3 解析无效 JSON 这可能是一个错误。
-
您的代码示例似乎不适用于任何版本,3v4l.org/Hl99u
-
如果字符串包含
"或',损坏的Web 服务会返回什么?您是否让服务知道他们提供了错误的 json? -
@AnthonySterling 适用于
PHP 5.5.3-1ubuntu2 (cli) -
不幸的是无效数据是一个大问题,如果可以的话,我的 0,02 美分是与提供者交谈,我也遇到了 XML 问题,不得不进行大量文本解析来修复它们的无效格式(例如,他们使用非转义 & 符号)。