Dalam pembangunan PHP, selalunya perlu menukar rentetan JSON kepada tatasusunan atau objek untuk memudahkan pemprosesan data. JSON (JavaScript Object Notation) ialah format pertukaran data ringan yang menggunakan sintaks yang serupa dengan JavaScript dan boleh dihuraikan dan dijana dengan mudah oleh pelbagai bahasa pengaturcaraan dan rangka kerja.
Dalam PHP, anda boleh menggunakan fungsi json_decode() untuk menukar rentetan JSON kepada tatasusunan atau objek PHP. Sintaks fungsi ini adalah seperti berikut:
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
Perihalan parameter:
Seterusnya, kami menunjukkan cara menukar rentetan JSON kepada tatasusunan atau objek PHP.
Contoh 1: Tukar rentetan JSON kepada tatasusunan PHP
$jsonStr = '{"name":"John", "age":30, "city":"New York"}'; $assocArr = json_decode($jsonStr, true); print_r($assocArr);
Hasil keluaran:
Array ( [name] => John [age] => 30 [city] => New York )
Dalam contoh di atas, kami menggunakan fungsi json_decode() Tukar JSON rentetan kepada tatasusunan bersekutu. Perlu diingat bahawa jika parameter $assoc ditetapkan kepada benar, tatasusunan bersekutu dikembalikan jika tidak, objek dikembalikan.
Contoh 2: Tukar rentetan JSON kepada objek PHP
$jsonStr = '{"name":"John", "age":30, "city":"New York"}'; $obj = json_decode($jsonStr); echo $obj->name . "\n"; echo $obj->age . "\n"; echo $obj->city . "\n";
Hasil output:
John 30 New York
Dalam contoh di atas, kami menggunakan fungsi json_decode() Tukar JSON rentetan ke objek. Perlu diingat bahawa jika parameter $assoc tidak ditetapkan kepada benar (atau parameter tidak diluluskan), objek akan dikembalikan jika tidak, tatasusunan bersekutu akan dikembalikan.
Contoh 3: Mengendalikan rentetan JSON dengan ralat penghuraian
Kadangkala, kita akan menemui beberapa rentetan JSON bukan standard atau rentetan JSON mengandungi data yang salah. Jika kami menggunakan fungsi json_decode() secara langsung, pengecualian akan dilemparkan atau palsu akan dikembalikan. Dalam kes ini, kita boleh menggunakan pernyataan cuba-tangkap untuk mengendalikan pengecualian, atau menggunakan parameter pilihan kedua untuk mengesan sama ada penghuraian berjaya.
$jsonStr = '{"name":"John", "age":30, "city":"New York}'; $array = json_decode($jsonStr, true); if ($array === null) { echo '解析JSON失败:' . json_last_error_msg() . "\n"; }
Hasil keluaran:
解析JSON失败:Syntax error
Dalam contoh di atas, kami sengaja memadamkan pendakap kerinting pengakhiran rentetan JSON, menjadikannya rentetan JSON yang tidak sah. Dengan menggunakan parameter pilihan kedua, kita boleh mengesan sama ada penghuraian berjaya Jika nol dikembalikan, penghuraian gagal. Pada masa ini, kita boleh menggunakan fungsi json_last_error_msg() untuk mendapatkan sebab khusus kegagalan penghuraian.
Ringkasan
Melalui contoh di atas, kita dapat melihat bahawa menukar rentetan JSON kepada tatasusunan atau objek dalam PHP adalah sangat mudah, hanya gunakan fungsi json_decode(). Perlu diingat bahawa jika rentetan JSON tidak diseragamkan, ia juga boleh menyebabkan kegagalan penghuraian Kita boleh menggunakan pernyataan cuba-tangkap untuk mengendalikan pengecualian, atau menggunakan parameter pilihan kedua untuk mengesan sama ada penghuraian berjaya.
Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan json kepada objek tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!