我有这些数据:
Array
(
[id] => 19936953
[name] => Zackaze
[profileIconId] => 585
[summonerLevel] => 30
[revisionDate] => 1394975422000
)
$str = json_decode($data,true);
$row = (object) $str;
echo $row['name'];
我尝试了这段代码,但它经常出现此错误:
致命错误:无法使用stdClass类型的对象作为数组
希望你能帮助我。
答案 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;