Home  >  Article  >  Backend Development  >  How to Parse JSON as an Array or Object in PHP

How to Parse JSON as an Array or Object in PHP

Linda Hamilton
Linda HamiltonOriginal
2024-10-21 14:47:30884browse

How to Parse JSON as an Array or Object in PHP

Parsing JSON with PHP

JSON is a popular data format that is often used to exchange data between web applications and APIs. In PHP, the json_decode() function can be used to parse JSON strings into PHP arrays or objects.

To parse JSON as an object, simply use the $json = json_decode($data) syntax. The resulting object can then be accessed using dot notation.

However, if you want to parse JSON as an array, you need to pass a second argument of true to the json_decode() function. This will return an associative array where the keys are the property names and the values are the corresponding values.

Consider the following JSON data as an example:

{
    "kind": "shopping#products",
    "etag": "\"T9uPnY2MZMB71TDpKXXZdr3yWX4/qtJ5vmpftFWNfijyLD9ti2Xpj-w\"",
    "id": "tag:google.com,2010:shopping/products",
    "selfLink": "https://www.googleapis.com/shopping/search/v1/public/products?country\u003dus&q\u003dsony&maxResults\u003d3&startIndex\u003d2",
    "nextLink": "https://www.googleapis.com/shopping/search/v1/public/products?country\u003dus&q\u003dsony&maxResults\u003d3&startIndex\u003d5",
    "previousLink": "https://www.googleapis.com/shopping/search/v1/public/products?country\u003dus&q\u003dsony&maxResults\u003d3&startIndex\u003d1",
    "totalItems": 633694,
    "startIndex": 2,
    "itemsPerPage": 3,
    "currentItemCount": 3,
    "items": [
        {
            "kind": "shopping#product",
            "id": "tag:google.com,2010:shopping/products/1161353/11882813508247586172",
            "selfLink": "https://www.googleapis.com/shopping/search/v1/public/products/1161353/gid/11882813508247586172",
            "product": {
                "googleId": "11882813508247586172",
                "author": {
                    "name": "Buy.com",
                    "accountId": "1161353"
                },
                "creationTime": "2011-04-24T05:13:38.000Z",
                "modificationTime": "2011-08-05T17:45:24.000Z",
                "country": "US",
                "language": "en",
                "title": "Sony BRAVIA KDL-46EX720 46 inch 3D LED HDTV 1080p 120Hz",
                "description": "Entertainment lovers the slim Sony EX720-Series LED HDTV is for you. See precise motion detail plus watch your favorite 2D or 3D entertainment in clear, vivid Full HD 1080p picture quality with incredible contrast. You can even connect to the internet and access a great selection of online entertainment with Netflix , Hulu Plus , Pandora , Qriocity and more - there s always something on. Plus video chat with friends and family when you Skype on the big screen.",
                "link": "http://clickfrom.buy.com/default.asp?adid\u003d17902&sURL\u003dhttp%3A%2F%2Fwww.buy.com%2Fprod%2Fsony-bravia-kdl-46ex720-46-3d-led-hdtv-1080p-120hz%2Fq%2Fsellerid%2F10004001%2Floc%2F111%2F219891693.html",
                "brand": "Sony",
                "condition": "new",
                "gtin": "00027242817081",
                "gtins": [
                    "00027242817081"
                ],
                "inventories": [
                    {
                        "channel": "online",
                        "availability": "inStock",
                        "price": 1348.0,
                        "currency": "USD"
                    }
                ],
                "images": [
                    {
                        "link": "http://ak.buy.com/PI/0/1000/219891693.jpg"
                    }
                ]
            }
        }
    ]
}

To parse this JSON as an array, use the following syntax:

<code class="php">$json = json_decode($data, true);</code>

This will return the following array:

[
    "kind" => "shopping#products",
    "etag" => "\"T9uPnY2MZMB71TDpKXXZdr3yWX4/qtJ5vmpftFWNfijyLD9ti2Xpj-w\"",
    "id" => "tag:google.com,2010:shopping/products",
    "selfLink" => "https://www.googleapis.com/shopping/search/v1/public/products?country\u003dus&amp;q\u003dsony&amp;maxResults\u003d3&amp;startIndex\u003d2",
    "nextLink" => "https://www.googleapis.com/shopping/search/v1/public/products?country\u003dus&amp;q\u003dsony&amp;maxResults\u003d3&amp;startIndex\u003d5",
    "previousLink" => "https://www.googleapis.com/shopping/search/v1/public/products?country\u003dus&amp;q\u003dsony&amp;maxResults\u003d3&amp;startIndex\u003d1",
    "totalItems" => 633694,
    "startIndex" => 2,
    "itemsPerPage" => 3,
    "currentItemCount" => 3,
    "items" => [
        [
            "kind" => "shopping#product",
            "id" => "tag:google.com,2010:shopping/products/1161353/11882813508247586172",
            "selfLink" => "https://www.googleapis.com/shopping/search/v1/public/products/1161353/gid/11882813508247586172",
            "product" => [
                "googleId" => "11882813508247586172",
                "author" => [
                    "name" => "Buy.com",
                    "accountId" => "1161353"
                ],
                "creationTime" => "2011-04-24T05:13:38.000Z",
                "modificationTime" => "2011-08-05T17:45:24.000Z",
                "country" => "US",
                "language" => "en",
                "title" => "Sony BRAVIA KDL-46EX720 46 inch 3D LED HDTV 1080p 120Hz",
                "description" => "Entertainment lovers the slim Sony EX720-Series LED HDTV is for you. See precise motion detail plus watch your favorite 2D or 3D entertainment in clear, vivid Full HD 1080p picture quality with incredible contrast. You can even connect to the internet and access a great selection of online entertainment with Netflix , Hulu Plus , Pandora , Qriocity and more - there s always something on. Plus video chat with friends and family when you Skype on the big screen.",

The above is the detailed content of How to Parse JSON as an Array or Object in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn