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.
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.
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.
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.
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.
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!