如何使用php解码json对象

如何使用php解码json对象,php,json,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 我想你想用json编码,它已经

我从数据库中得到以下结果:

stdClass Object ( [risk_challenge] => ["dfsgdfgdgdf","dfgdfgdfg","dfgdfgdfgdf"] ) 
当我尝试使用以下功能解码时:

$result = json_decode($result,true);
我得到了这个错误:

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

我想你想用json编码,它已经被解码了

使用json_encode编码

您拥有的是一个有效的对象,它没有json,它是PHP的核心
stdClass
类的一个实例。如果您想使用它(例如,列出风险挑战值),只需写下:

foreach ($obj->risk_challenge as $value)
    echo ' *> ', $value, PHP_EOL;
工作完成。
如果要将对象转换为关联阵列,有两个选项:

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

你为什么要用第二个版本而不是演员阵容?很简单:演员阵容很浅(如果任何属性/键包含另一个对象,它将不会被强制转换为关联数组,但它仍然是一个对象。
json\u decode
确实可以递归工作。但是,在您的情况下,我会坚持强制转换。

首先检查您的json。它有效吗?如果它是一个对象,您已经对它进行了解码。
stdClass
的一个实例是一个b一个fide PHP对象,您可以对其进行迭代或直接访问其成员(例如,
$obj->risk\u challenge[0]
)您在错误消息中得到了答案。您需要从数据库结果中获取字符串以对其进行解码,并将对象指定给它,而不是字符串。如何在codeigniter控制器中调用引导模式function@kalavathi当前位置这是一个完全不同的问题,可能是一个已经被问过的问题(或手册中容易找到的答案)。