php - Parse Goole Books PI JSON

时间:2017-09-03 14:03:02

标签: php json google-api

我编写了一个PHP代码来解析数据pobidd GoogleBooks API

<?php

    $isbn = "9781451648546"; // Steve Jobs book 
    $json = file_get_contents('https://www.googleapis.com/books/v1/volumes?q=isbn:'.$isbn);
    $obj = json_decode($json, true);


    echo $obj["volumeInfo"]["title"];
    echo $obj["volumeInfo"]["title"];
    echo $obj["volumeInfo"]["subtitle"];
    echo $obj["volumeInfo"]["authors"];
    echo $obj["volumeInfo"]["printType"];
    echo $obj["volumeInfo"]["pageCount"];
    echo $obj["volumeInfo"]["publisher"];
    echo $obj["volumeInfo"]["publishedDate"];
    echo $obj["accessInfo"]["webReaderLink"];

?>

执行时,我得到了

  

注意:未定义的索引:第8行的/storage/ssd3/164/2474164/public_html/dev/fetch/v2.php中的volumeInfo

对于所有回声字符串,所以我在没有解决方案的情况下重新检查了所有可能的问题来源

2 个答案:

答案 0 :(得分:0)

您以错误的方式访问数组元素。请var_dump($obj);echo '<pre>'; print_r($obj); echo '</pre>';查看完整的数组结构。您的echo语句将如下所示:

echo $obj['items'][0]["volumeInfo"]["title"] . '<br />';
// echo $obj['items'][0]["volumeInfo"]["subtitle"];
echo $obj['items'][0]["volumeInfo"]["authors"][0] . '<br />';
echo $obj['items'][0]["volumeInfo"]["printType"] . '<br />';
echo $obj['items'][0]["volumeInfo"]["pageCount"] . '<br />';
echo $obj['items'][0]["volumeInfo"]["publisher"] . '<br />';
echo $obj['items'][0]["volumeInfo"]["publishedDate"] . '<br />';
echo $obj['items'][0]["accessInfo"]["webReaderLink"] . '<br />';

不确定您是否会收到字幕信息以及图书详细信息。如果是,那么请取消注释 行。

答案 1 :(得分:0)

在我看来,使用对象表示法访问JSON响应的各种属性而不是笨重的数组语法要容易得多,但是在尝试访问子对象之前需要在对象/数组层次结构中识别正确的位置它的钥匙。

Steve JobsWalter IsaacsonBOOK

stdClass Object
(
    [kind] => books#volumes
    [totalItems] => 1
    [items] => Array
        (
            [0] => stdClass Object
                (
                    [kind] => books#volume
                    [id] => 8U2oAAAAQBAJ
                    [etag] => Cfd5hfOLjks
                    [selfLink] => https://www.googleapis.com/books/v1/volumes/8U2oAAAAQBAJ
                    [volumeInfo] => stdClass Object
                        (
                            [title] => Steve Jobs
                            [authors] => Array
                                (
                                    [0] => Walter Isaacson
                                )

                            [publisher] => Simon and Schuster
                            [publishedDate] => 2011
                            [description] => Draws on more than forty interviews with Steve Jobs, as well as interviews with family members, friends, competitors, and colleagues to offer a look at the co-founder and leading creative force behind the Apple computer company.
                            [industryIdentifiers] => Array
                                (
                                    [0] => stdClass Object
                                        (
                                            [type] => ISBN_13
                                            [identifier] => 9781451648546
                                        )

                                    [1] => stdClass Object
                                        (
                                            [type] => ISBN_10
                                            [identifier] => 1451648545
                                        )

                                )

                            [readingModes] => stdClass Object
                                (
                                    [text] => 
                                    [image] => 
                                )

                            [pageCount] => 630
                            [printType] => BOOK
                            [categories] => Array
                                (
                                    [0] => Biography & Autobiography
                                )

                            [averageRating] => 4
                            [ratingsCount] => 3904
                            [maturityRating] => NOT_MATURE
                            [allowAnonLogging] => 
                            [contentVersion] => 0.3.0.0.preview.0
                            [imageLinks] => stdClass Object
                                (
                                    [smallThumbnail] => http://books.google.com/books/content?id=8U2oAAAAQBAJ&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api
                                    [thumbnail] => http://books.google.com/books/content?id=8U2oAAAAQBAJ&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api
                                )

                            [language] => en
                            [previewLink] => http://books.google.co.uk/books?id=8U2oAAAAQBAJ&printsec=frontcover&dq=isbn:9781451648546&hl=&cd=1&source=gbs_api
                            [infoLink] => http://books.google.co.uk/books?id=8U2oAAAAQBAJ&dq=isbn:9781451648546&hl=&source=gbs_api
                            [canonicalVolumeLink] => https://books.google.com/books/about/Steve_Jobs.html?hl=&id=8U2oAAAAQBAJ
                        )

                    [saleInfo] => stdClass Object
                        (
                            [country] => GB
                            [saleability] => NOT_FOR_SALE
                            [isEbook] => 
                        )

                    [accessInfo] => stdClass Object
                        (
                            [country] => GB
                            [viewability] => PARTIAL
                            [embeddable] => 1
                            [publicDomain] => 
                            [textToSpeechPermission] => ALLOWED_FOR_ACCESSIBILITY
                            [epub] => stdClass Object
                                (
                                    [isAvailable] => 
                                )

                            [pdf] => stdClass Object
                                (
                                    [isAvailable] => 
                                )

                            [webReaderLink] => http://play.google.com/books/reader?id=8U2oAAAAQBAJ&hl=&printsec=frontcover&source=gbs_api
                            [accessViewStatus] => SAMPLE
                            [quoteSharingAllowed] => 
                        )

                    [searchInfo] => stdClass Object
                        (
                            [textSnippet] => Draws on more than forty interviews with Steve Jobs, as well as interviews with family members, friends, competitors, and colleagues to offer a look at the co-founder and leading creative force behind the Apple computer company.
                        )

                )

        )

)

将输出

$counter