如何使用PHP解码json对象

时间:2014-10-14 10:16:26

标签: php json

我从数据库获得以下结果:

stdClass Object ( [risk_challenge] => ["dfsgdfgdgdf","dfgdfgdfg","dfgdfgdfgdf"] ) 

当我尝试使用以下功能对其进行解码时:

$result = json_decode($result,true);

我收到了这个错误:

Message: json_decode() expects parameter 1 to be string, object given

2 个答案:

答案 0 :(得分:1)

你拥有的是一个有效的对象,没有关于它的JSON,它是PHP核心stdClass类的一个实例。如果你想使用它(例如get list the risk_challenge值),只需写:

foreach ($obj->risk_challenge as $value)
    echo ' *> ', $value, PHP_EOL;

完成工作。
如果要将对象转换为关联数组,则有2个选项:

$array = (array) $object;//a simple cast
$array = json_decode( //decode with assoc argument = true
    json_encode(// but first encode it
        $object
    ), true);

为什么要使用第二个版本而不是演员?简单:转换是浅的(如果任何属性/键包含另一个对象,它将转换为关联数组,但它仍然是一个对象。json_decode但是,在你的情况下,我会坚持演员。

答案 1 :(得分:0)

我想你想在json中编码已经解码

使用json_encode编码