Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Menghuraikan JSON sebagai Array atau Objek dalam PHP

Cara Menghuraikan JSON sebagai Array atau Objek dalam PHP

Linda Hamilton
Linda Hamiltonasal
2024-10-21 14:47:30884semak imbas

How to Parse JSON as an Array or Object in PHP

Menghuraikan JSON dengan PHP

JSON ialah format data popular yang sering digunakan untuk bertukar-tukar data antara aplikasi web dan API. Dalam PHP, fungsi json_decode() boleh digunakan untuk menghuraikan rentetan JSON ke dalam tatasusunan atau objek PHP.

Untuk menghuraikan JSON sebagai objek, hanya gunakan sintaks $json = json_decode($data). Objek yang terhasil kemudiannya boleh diakses menggunakan notasi titik.

Walau bagaimanapun, jika anda ingin menghuraikan JSON sebagai tatasusunan, anda perlu menghantar argumen kedua true kepada fungsi json_decode(). Ini akan mengembalikan tatasusunan bersekutu yang mana kuncinya ialah nama sifat dan nilainya ialah nilai yang sepadan.

Pertimbangkan data JSON berikut sebagai contoh:

{
    "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"
                    }
                ]
            }
        }
    ]
}

Untuk menghuraikan JSON ini sebagai tatasusunan, gunakan sintaks berikut:

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

Ini akan mengembalikan tatasusunan berikut:

[
    "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.",

Atas ialah kandungan terperinci Cara Menghuraikan JSON sebagai Array atau Objek dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn