Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar rentetan json kepada tatasusunan dan objek dalam php

Bagaimana untuk menukar rentetan json kepada tatasusunan dan objek dalam php

PHPz
PHPzasal
2023-03-23 11:11:571635semak imbas

Dalam proses pembangunan PHP, menukar rentetan Json kepada objek dan tatasusunan ialah operasi biasa. Json ialah format data, manakala PHP ialah bahasa pengaturcaraan, yang boleh menukar rentetan Json kepada objek dan tatasusunan PHP melalui fungsi json_decode(). Dalam artikel ini, kita akan belajar cara menukar rentetan Json kepada tatasusunan dan objek bersekutu PHP menggunakan salah satu kaedah paling biasa menggunakan rentetan Json.

Format rentetan Json

Sebelum kita belajar untuk menukar rentetan Json kepada objek dan tatasusunan PHP, mari kita semak semula format rentetan Json. Rentetan Json ialah data teks yang menyimpan data dalam bentuk pasangan nilai kunci. Setiap pasangan nilai kunci terdiri daripada "kunci" dan "nilai". objek atau tatasusunan Json.

Berikut ialah contoh rentetan Json:

{
    "name": "张三",
    "age": 25,
    "gender": "男",
    "address": {
        "province": "北京",
        "city": "朝阳区",
        "street": "和平路"
    },
    "hobbies": [
        "篮球",
        "游泳",
        "旅游"
    ]
}

Dalam contoh di atas, "nama", "umur", "jantina", "alamat" dan "hobi" ialah The "kunci" rentetan Json ini sepadan dengan "Zhang San", "25", "Lelaki", "alamat" dan "hobi" masing-masing. Antaranya, "alamat" ialah objek Json, dan "hobi" ialah tatasusunan Json.

Tukar rentetan Json kepada tatasusunan PHP

Dalam PHP, cara untuk menukar rentetan Json kepada tatasusunan ialah menggunakan fungsi json_decode(). Sintaks fungsi json_decode() adalah seperti berikut:

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

Antaranya, parameter $json ialah rentetan Json yang hendak ditukar dan parameter $assoc menunjukkan sama ada hendak menukar objek Json menjadi Tatasusunan persatuan PHP (true menunjukkan penukaran kepada Tatasusunan persatuan PHP, palsu menunjukkan penukaran kepada objek PHP), parameter $depth menunjukkan kedalaman maksimum penukaran (lalai ialah 512), dan parameter $options menunjukkan pilihan semasa penyahkodan (lalai ialah 0 ).

Berikut ialah contoh menukar rentetan Json kepada tatasusunan PHP:

  <?php

  $json_str = &#39;{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}&#39;;

  $arr = json_decode($json_str, true);

  print_r($arr);

  ?>

Dalam contoh di atas, kita mula-mula mentakrifkan rentetan Json $json_str. Kami menggunakan fungsi json_decode() untuk menukar $json_str kepada tatasusunan PHP dan menyimpan hasilnya dalam pembolehubah $arr. Akhir sekali, kami menggunakan fungsi print_r() untuk mengeluarkan kandungan tatasusunan.

Output kelihatan seperti ini:

Array
(
    [name] => 张三
    [age] => 25
    [gender] => 男
    [address] => Array
        (
            [province] => 北京
            [city] => 朝阳区
            [street] => 和平路
        )

    [hobbies] => Array
        (
            [0] => 篮球
            [1] => 游泳
            [2] => 旅游
        )

)

Tukar rentetan Json kepada objek PHP

Selain menukar rentetan Json kepada tatasusunan PHP , yang juga boleh ditukar menjadi objek PHP. Proses ini juga boleh dilaksanakan menggunakan fungsi json_decode(), cuma tetapkan parameter kedua kepada palsu atau abaikan.

Berikut ialah contoh menukar rentetan Json kepada objek PHP:

  <?php

  $json_str = &#39;{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}&#39;;

  $obj = json_decode($json_str);

  print_r($obj);

  ?>

Dalam contoh di atas, kami menetapkan parameter kedua kepada palsu dan hasilnya akan ditukarkan ialah PHP objek.

Hasil output adalah seperti berikut:

stdClass Object
(
    [name] => 张三
    [age] => 25
    [gender] => 男
    [address] => stdClass Object
        (
            [province] => 北京
            [city] => 朝阳区
            [street] => 和平路
        )

    [hobbies] => Array
        (
            [0] => 篮球
            [1] => 游泳
            [2] => 旅游
        )

)

Tukar objek dalam rentetan Json kepada tatasusunan PHP

Jika rentetan Json mengandungi Objek, dan anda perlu menukarnya kepada tatasusunan bersekutu PHP, anda boleh mula-mula menukarnya kepada objek PHP, dan kemudian menggunakan fungsi typecast() untuk menukarnya kepada tatasusunan bersekutu.

Berikut ialah contoh menukar objek dalam rentetan Json kepada tatasusunan bersekutu PHP:

  <?php

  $json_str = &#39;{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}&#39;;

  $obj = json_decode($json_str);

  $arr = json_decode(json_encode($obj), true);

  print_r($arr);

  ?>

Dalam contoh di atas, kita mula-mula menggunakan fungsi json_decode() untuk menukar Rentetan Json Tukar kepada objek PHP. Kemudian gunakan fungsi json_encode() untuk menukar objek PHP kepada rentetan Json dan sekali lagi gunakan fungsi json_decode() untuk menukarnya kepada tatasusunan bersekutu PHP. Akhir sekali, kami menggunakan fungsi print_r() untuk mengeluarkan kandungan tatasusunan.

Keluaran adalah sama seperti contoh pertama.

Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan json kepada tatasusunan dan 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