我从数据库获得以下结果:
stdClass Object ( [risk_challenge] => ["dfsgdfgdgdf","dfgdfgdfg","dfgdfgdfgdf"] )
当我尝试使用以下功能对其进行解码时:
$result = json_decode($result,true);
我收到了这个错误:
Message: json_decode() expects parameter 1 to be string, object given
答案 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编码