Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ketahui lebih lanjut tentang fungsi json_decode() PHP

Ketahui lebih lanjut tentang fungsi json_decode() PHP

PHPz
PHPzasal
2023-04-23 10:14:524514semak imbas

Dalam pembangunan PHP, kami sering menggunakan data format JSON untuk berinteraksi dengan bahagian hadapan. PHP menyediakan banyak fungsi untuk menghuraikan data JSON, yang paling biasa digunakan ialah fungsi json_decode(). Fungsi ini menukar data dalam format JSON kepada tatasusunan PHP untuk memudahkan pemprosesan data seterusnya. Dalam artikel ini, kami akan memperkenalkan fungsi json_decode() dan pengetahuan berkaitan secara terperinci.

1. Apakah itu JSON

JSON (JavaScript Object Notation) ialah format pertukaran data ringan yang mudah dibaca dan ditulis, dan juga mudah dihuraikan dan dijana oleh mesin. Ia berdasarkan subset bahasa JavaScript dan menggunakan format teks yang bebas sepenuhnya daripada bahasa pengaturcaraan. Dalam aplikasi WEB, JSON sering digunakan untuk berinteraksi dengan bahagian belakang untuk mencapai penghantaran dan penyimpanan data. Sebagai contoh, data yang diluluskan oleh POST atau GET boleh ditukar kepada format JSON, dan kemudian dipaparkan dan diproses pada bahagian hadapan.

Format data JSON adalah serupa dengan objek dan tatasusunan dalam JavaScript, yang terdiri daripada pasangan "nama/nilai", dengan nama ialah rentetan (mesti dalam petikan berganda) dan nilainya boleh berupa rentetan, nombor, atau nilai Boolean, tatasusunan, objek atau null. Berikut ialah contoh data JSON mudah:

{
    "name": "Tom",
    "age": 18,
    "hobbies": ["reading", "music", "swimming"],
    "address": {
        "province": "Beijing",
        "city": "Beijing",
        "district": "Haidian"
    }
}

2. json_decode() fungsi

json_decode() fungsi ialah teras dalam PHP untuk menukar data format JSON ke dalam tatasusunan PHP atau fungsi objek . Sintaks fungsi ini adalah seperti berikut:

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

fungsi json_decode() menerima rentetan format JSON sebagai parameter dan mengembalikan tatasusunan atau objek PHP. Parameter $assoc menunjukkan sama ada untuk menukar nilai pulangan kepada tatasusunan bersekutu Nilai lalai adalah palsu, menunjukkan objek pulangan. Parameter $depth mewakili kedalaman maksimum analisis rekursif Nilai lalai ialah 512, yang bermaksud 512 lapisan rekursif. Parameter $options mewakili pilihan penghuraian lain yang disokong pada masa ini termasuk JSON_BIGINT_AS_STRING, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR, dsb. Berikut ialah contoh penggunaan mudah:

$json = '{"name":"Tom","age":18,"hobbies":["reading","music","swimming"],"address":{"province":"Beijing","city":"Beijing","district":"Haidian"}}';
$arr = json_decode($json, true);
print_r($arr);

Hasil output ialah:

Array
(
    [name] => Tom
    [age] => 18
    [hobbies] => Array
        (
            [0] => reading
            [1] => music
            [2] => swimming
        )

    [address] => Array
        (
            [province] => Beijing
            [city] => Beijing
            [district] => Haidian
        )

)

Dalam kod di atas, kami mula-mula mentakrifkan rentetan format JSON dan kemudian memanggil json_decode() The fungsi menghuraikannya ke dalam tatasusunan PHP. Untuk mengembalikan tatasusunan bersekutu dan bukannya objek, kami menetapkan parameter $assoc kepada benar. Akhir sekali, gunakan fungsi print_r() untuk mengeluarkan kandungan tatasusunan.

3. Nota

Terdapat beberapa perkara yang perlu diberi perhatian apabila menggunakan fungsi json_decode(). Pertama, jika format data JSON yang dihuraikan tidak mematuhi spesifikasi, atau ralat berlaku semasa proses penghuraian, fungsi json_decode() akan mengembalikan null. Pada masa ini, anda boleh menetapkan parameter $options kepada JSON_THROW_ON_ERROR untuk menyebabkannya membuang pengecualian apabila menghuraikan ralat, supaya kami boleh mengendalikan ralat tepat pada masanya.

Kedua, jika data Json mengandungi integer yang besar, kehilangan ketepatan akan berlaku. Pada masa ini, anda boleh menetapkan parameter $options kepada JSON_BIGINT_AS_STRING untuk memproses integer besar sebagai rentetan.

Akhir sekali, perlu diingat bahawa apabila menghuraikan tatasusunan berbilang dimensi, fungsi json_decode() hanya menghuraikan 512 lapisan secara lalai, iaitu, kedalaman rekursi ialah 512. Jika bilangan tahap ini melebihi, batal akan dikembalikan. Kedalaman rekursi boleh ditentukan menggunakan parameter $depth.

Terdapat banyak perkara yang perlu diberi perhatian Untuk maklumat lanjut, sila rujuk dokumentasi di laman web rasmi PHP.

4. Ringkasan

Fungsi json_decode() ialah fungsi teras dalam PHP untuk menghuraikan data JSON. Ia boleh menukar data format JSON kepada tatasusunan atau objek PHP. Apabila menggunakan fungsi ini, anda perlu ambil perhatian bahawa format data JSON yang diluluskan mesti mematuhi spesifikasi, jika tidak, null akan dikembalikan. Pada masa yang sama, anda juga perlu memberi perhatian kepada isu seperti kedalaman rekursi apabila menghuraikan tatasusunan berbilang dimensi. Melalui pengenalan artikel ini, saya percaya bahawa pembaca mempunyai pemahaman yang mendalam tentang fungsi json_decode() dan boleh menggunakannya dengan lebih fleksibel dalam pembangunan sebenar.

Atas ialah kandungan terperinci Ketahui lebih lanjut tentang fungsi json_decode() 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