php json_decode在键上没有引号的情况下失败
我有这样的json数据表示
{key:"value"}
(没有引号的钥匙...)
我想将其转换为关联数组。
PHP 的json_decode返回 null
如何在密钥周围添加引号?谢谢。。。
我有这样的json数据表示
{key:"value"}
(没有引号的钥匙...)
我想将其转换为关联数组。
PHP 的json_decode返回 null
如何在密钥周围添加引号?谢谢。。。
您可以在源中修复 JSON,使其返回有效的 JSON 结构,也可以手动在键两边添加引号。
这个类似问题的答案有一个如何做到这一点的例子:
function my_json_decode($s) {
$s = str_replace(
array('"', "'"),
array('\"', '"'),
$s
);
$s = preg_replace('/(\w+):/i', '"\1":', $s);
return json_decode(sprintf('{%s}', $s));
}
如果您无法在源位置将其转换为有效的 JSON,则可以使用 PEAR 中的 Services_JSON
来解析它,因为在密钥周围添加引号是一个非常容易出错的过程。
Services_JSON
将正确解析无效的密钥字符串。
例:
$json = new Services_JSON();
var_dump($json->decode('{key:"value"}'));
输出:
object(stdClass)#2 (1) {
["key"]=>
string(5) "value"
}