Pergunta

How to access element of below json output using php ..

{
    "ISBN:9781430215752": {
        "bib_key": "ISBN:9781430215752",
        "preview":
                "restricted",
        "preview_url":
                "https://archive.org/details/linuxrecipesforo00kuhn",
        "info_url": "https://openlibrary.org/books/OL23936576M/Linux_recipes_for_Oracle_DBAs",
        "details": {
            "lc_classifications": ["QA76.9.D3 K84 2009"],
            "latest_revision": 2,
            "ocaid": "linuxrecipesforo00kuhn",
            "contributions": ["Kim, Charles.", "Lopuz, Bernard."],
            "source_records": ["marc:marc_loc_updates/v37.i44.records.utf8:10470755:1047"],
            "title":
                    "Linux recipes for Oracle DBAs",
            "languages": [{
                    "key": "/languages/eng"
                }],
            "subjects": ["Linux", "Oracle (Computer file)", "Relational databases", "Database management"],
            "publish_country": "cau",
            "by_statement": "Darl Kuhn, Charles Kim, Bernard Lopuz.",
            "type": {
                "key": "/type/edition"
            },
            "revision": 2,
            "other_titles": ["Linux recipes for Oracle DataBase Administrators"],
            "publishers": ["Apress", "Distributed to the book trade by Springer-Verlag"],
            "last_modified": {
                "type": "/type/datetime",
                "value": "2014-04-06T06:55:36.956977"
            },
            "key": "/books/OL23936576M",
            "authors": [{
                    "name": "Darl Kuhn",
                    "key": "/authors/OL1484587A"
                }],
            "publish_places": ["Berkeley, CA", "New York"],
            "oclc_number": ["243543902"],
            "pagination": "xxv, 501 p. :",
            "created": {
                "type": "/type/datetime",
                "value": "2009-11-24T23:42:39.524606"
            },
            "dewey_decimal_class": ["005.75/65 22", "005.26/8"],
            "notes": {
                "type": "/type/text",
                "value": "Includes index."
            },
            "number_of_pages": 501,
            "isbn_13": ["9781430215752"],
            "lccn": ["2009277832"],
            "isbn_10": ["1430215755"],
            "publish_date": "2008"
        }
    }
}

I tried using below code,
it doesn't work.

$json = json_decode($body);

echo $json->ISBN:9780980200447->info_url;

It's giving an error..

Is there any other easy way to read all elements?

Foi útil?

Solução

You are on the right track. : is just an invalid character for a property and must be handled special.

echo $json->{'ISBN:9781430215752'}->info_url;

will get you the expected result.

Outras dicas

You may also decode as an associative array

$json = json_decode($body, true);
echo $json['ISBN:9781430215752']['info_url'];

I would probably stick to this approach rather than the object oriented, since encapsulating keys makes code less readable

You must use

echo $json->{'ISBN:9780980200447'}->info_url;

since 'ISBN:9780980200447' is your class name.

Reference: php.net

<?php

$json = '{"foo-bar": 12345}';

$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345

?>

Use braces like this:

echo $json->{'ISBN:9781430215752'}->info_url;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top