PHP打印JSON值
我有一个JSON数组,我希望能够深入到一个较低的级别,并只打印该值。当我达到一个被定义为[0]或[n]的级别时,就会出现问题。例如,我有以下输出,我只想打印第一个联赛的游戏密钥 这就是我试图打印它的方式PHP打印JSON值,php,json,Php,Json,我有一个JSON数组,我希望能够深入到一个较低的级别,并只打印该值。当我达到一个被定义为[0]或[n]的级别时,就会出现问题。例如,我有以下输出,我只想打印第一个联赛的游戏密钥 这就是我试图打印它的方式 HtmlSpecialChars(print_r($user->fantasy_content->users[0]->user[1]->games[0]->game[0]->game_key,1)) 然而,我不断地得到这个错误: Cannot use obj
HtmlSpecialChars(print_r($user->fantasy_content->users[0]->user[1]->games[0]->game[0]->game_key,1))
然而,我不断地得到这个错误:
Cannot use object of type stdClass as array
当我以增量方式执行此操作时,此命令似乎失败,因此我假设我没有正确索引:
$user->fantasy_content->users[0]
以下是输出:
stdClass Object
(
[fantasy_content] => stdClass Object
(
[xml:lang] => en-US
[yahoo:uri] => /fantasy/v2/users;use_login=1/games
[users] => stdClass Object
(
[0] => stdClass Object
(
[user] => Array
(
[0] => stdClass Object
(
[guid] => IYEZUHTVBYRLIB3OAQC5WRZPQY
)
[1] => stdClass Object
(
[games] => stdClass Object
(
[0] => stdClass Object
(
[game] => Array
(
[0] => stdClass Object
(
[game_key] => 147
[game_id] => 147
[name] => Baseball
[code] => mlb
[type] => full
[url] => http://baseball.fantasysports.yahoo.com/b1
[season] => 2006
)
)
)
[count] => 1
)
)
)
)
[count] => 1
)
[time] => 52.390813827515ms
[copyright] => Data provided by Yahoo! and STATS, LLC
[refresh_rate] => 60
)
)
可以通过如下方式将stdClass对象转换为数组:
<?php
$array = (array) $myObject;
echo json_encode($array);
您还可以内联强制转换:
<?php
echo json_encode((array) $object);
对于对象,必须使用->语法,如果键/属性名称是数字或具有其他特殊字符,则需要使用$object->{'0'}语法 可以使用以下方法检索游戏密钥:
$user->fantasy_content->users->{'0'}->user[1]->games->{'0'}->game[0]->game_key;
您不必使用引号,只要$object->{0}以同样的方式工作。