PHP解码JSON的问题

时间:2014-03-17 13:03:45

标签: php json

我有这些数据:

Array
(
    [id] => 19936953
    [name] => Zackaze
    [profileIconId] => 585
    [summonerLevel] => 30
    [revisionDate] => 1394975422000
)

$str = json_decode($data,true);


$row = (object) $str;
echo $row['name'];

我尝试了这段代码,但它经常出现此错误:

  

致命错误:无法使用stdClass类型的对象作为数组

希望你能帮助我。

4 个答案:

答案 0 :(得分:1)

虽然不需要转换为对象(正如其他人提到的那样),但这并不是导致错误的原因。您无法使用$array['key']表示法访问对象属性。您必须使用$object->property

或者,您可以删除$row = (object) $str;行,然后您可以作为数组访问$row

答案 1 :(得分:0)

您已经将json解码为关联数组,因为您使用true作为第二个参数,因此您可以使用范围直接打印它。如果您需要解码为对象,只需删除第二个参数,我认为您需要以其他方式访问它。

$str = json_decode($data,true);
echo $str['name'];

答案 2 :(得分:0)

json_decode 的第二个参数会将对象转换为关联数组。只需删除第二个参数或将其更改为false,它将返回一个stdClass而不是一个关联数组。

您可以看到Documentation

答案 3 :(得分:0)

尝试输出

$str = json_decode($data,true);
$str = array
(
    'id' => 19936953,
    'name' => Zackaze,
    'profileIconId' => 585,
    'summonerLevel' => 30,
    'revisionDate' => 1394975422000
);

$row = (object) $str;
echo $row->name;

或者更干净的方式

$str = json_decode($data);
echo $str->name;