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

Bagaimana untuk menukar rentetan json kepada tatasusunan dalam php

PHPz
PHPzasal
2023-04-20 10:12:38474semak imbas

Dalam PHP, selalunya perlu menukar data format JSON kepada tatasusunan yang boleh digunakan oleh PHP Proses ini biasanya dipanggil penghuraian JSON. Dalam PHP, terdapat banyak cara untuk menghuraikan JSON, tetapi PHP dilengkapi dengan fungsi yang sangat mudah json_decode(), yang boleh membantu kami menukar rentetan berformat JSON ke dalam tatasusunan atau objek dalam PHP dengan cepat.

  1. Pengenalan fungsi Json_decode()

fungsi json_decode() ialah fungsi yang disediakan oleh pustaka fungsi PHP untuk menghuraikan data dalam format JSON. Fungsinya diisytiharkan seperti berikut:

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

di mana, $json ialah data format JSON yang perlu dihuraikan dan $assoc menunjukkan sama ada hendak menukar data JSON kepada tatasusunan bersekutu PHP. Parameter $depth mentakrifkan kedalaman maksimum penghuraian data JSON dan $options boleh menetapkan pilihan penghuraian.

  1. Tukar data format JSON kepada tatasusunan PHP

Kaedah untuk menukar data format JSON kepada tatasusunan PHP adalah sangat mudah, hanya gunakan $assoc dalam fungsi json_decode() Hanya tetapkan parameter kepada benar. Sebagai contoh, berikut ialah data format JSON yang mudah:

$jsonStr = '{"name":"Li Lei","age":20,"jantina":"lelaki","alamat": { "province":"Shandong","city":"Qingdao","daerah":"Daerah Sifang"}}';
$arr = json_decode($jsonStr, true);

di atas Dalam kod tersebut, kami menetapkan parameter $assoc kepada true untuk menukar data JSON kepada tatasusunan bersekutu PHP Pembolehubah $arr ialah tatasusunan PHP selepas data JSON yang kami perlukan. Kini ahli dalam $arr boleh diperolehi melalui subskrip tatasusunan, seperti $arr['nama'], $arr['umur'], $arr'address' dan sebagainya.

  1. Tukar data format JSON kepada objek PHP

Jika anda ingin menukar data format JSON kepada objek PHP, anda boleh menetapkan parameter $assoc dalam fungsi json_decode() kepada palsu atau tidak ditetapkan. Sebagai contoh, berikut ialah data format JSON yang mudah:

$jsonStr = '{"name":"Li Lei","age":20,"jantina":"lelaki","alamat": { "provinsi":"Shandong","city":"Qingdao","daerah":"Daerah Sifang"}}';

$obj = json_decode($jsonStr);

dalam Dalam kod di atas, parameter $assoc tidak ditetapkan kepada benar, dan fungsi json_decode() mengembalikan objek PHP. Sekarang gunakan $obj->name, $obj->age, $obj->address->province dan sintaks lain yang serupa untuk mendapatkan data dalam objek PHP selepas penukaran data JSON.

  1. Ralat biasa dalam menghuraikan data format JSON

Apabila menghuraikan data format JSON, kami sering menghadapi masalah bahawa data yang diperoleh daripada API tidak boleh ditukar dengan jayanya terdapat sebab berikut:

4.1 Ralat format JSON

Mungkin fungsi json_decode() tidak dapat menghuraikan data format JSON Pada masa ini, anda boleh menggunakan alat seperti JSONLint ini untuk pemeriksaan dan pengesahan dalam talian.

4.2 Ralat pemprosesan data

Kadangkala data JSON yang diperolehi memerlukan beberapa pemprosesan untuk berjaya ditukar Contohnya, data JSON mengandungi ulasan dan tidak dikodkan UTF-8, dsb. Dalam kes ini , adalah perlu Lakukan beberapa pemprosesan data dan kemudian huraikan.

4.3 Unsur tidak ditentukan/tidak diketahui

Dalam tatasusunan dan objek PHP, jika anda cuba menggunakan kata kunci yang tidak wujud atau nama atribut objek, atur cara akan melaporkan ralat, jadi anda perlu memastikan bahawa apabila menghuraikan data JSON Integriti data.

  1. Ringkasan

Dalam PHP, data format JSON boleh ditukar dengan mudah kepada tatasusunan atau objek PHP melalui fungsi json_decode(). Pelbagai ralat sering berlaku dalam data format JSON Oleh itu, apabila menghuraikan data JSON, adalah perlu untuk memastikan integriti data dan mengendalikan ralat tepat pada masanya.

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