Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP打印JSON值_Php_Json - Fatal编程技术网

PHP打印JSON值

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

我有一个JSON数组,我希望能够深入到一个较低的级别,并只打印该值。当我达到一个被定义为[0]或[n]的级别时,就会出现问题。例如,我有以下输出,我只想打印第一个联赛的游戏密钥

这就是我试图打印它的方式

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}以同样的方式工作。