Semasa proses pembangunan, kami sering melibatkan penukaran data JSON kepada tatasusunan atau tatasusunan objek. Sebagai bahasa pengaturcaraan sebelah pelayan yang popular, PHP juga menyediakan kaedah yang mudah untuk melaksanakan operasi penukaran apabila memproses data JSON. Artikel ini menggunakan contoh untuk menunjukkan cara menukar data JSON kepada tatasusunan objek tatasusunan.
Sebelum menerangkan operasi khusus, anda perlu memahami beberapa pengetahuan asas PHP.
JSON (singkatan daripada Notasi Objek JavaScript) ialah format pertukaran data yang ringan. Ia mewakili data sebagai pasangan nilai kunci atau format tatasusunan. Data JSON boleh diwakili menggunakan objek dan tatasusunan dalam JavaScript.
Dalam PHP, tatasusunan ialah struktur yang mengumpul data. Ia boleh menyimpan jenis nilai yang berbeza Dalam tatasusunan, setiap nilai mempunyai kunci yang dikaitkan dengannya dan kunci itu boleh berupa sebarang rentetan atau integer.
objek stdClass ialah model objek yang sangat mudah dalam PHP Ia boleh memperuntukkan sifat secara dinamik mengikut keperluan Selain itu, ia juga boleh menukar objek kepada tatasusunan atau Tatasusunan objek, yang berguna untuk memproses data JSON.
Mari kita lihat dahulu cara menukar data JSON kepada tatasusunan PHP. PHP menyediakan fungsi terbina dalam json_decode(), yang boleh menukar rentetan JSON kepada tatasusunan PHP. Penggunaan fungsi ini adalah seperti berikut:
mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] )
Antaranya, $json mewakili rentetan JSON yang perlu ditukar $assoc mewakili sama ada untuk mengembalikan tatasusunan bersekutu (lalai adalah palsu, yang bermaksud mengembalikan objek); $depth mewakili kedalaman rekursi maksimum (Lalai ialah 512);
Berikut ialah contoh mudah, dengan mengandaikan kami mempunyai fail data.json
yang mengandungi data JSON:
{ "name": "Typechoer", "age": 25, "gender": "male", "skills": ["PHP", "JavaScript", "CSS"] }
Kami boleh membaca data JSON dan menukarnya kepada PHP menggunakan Array kod berikut:
$json = file_get_contents('data.json'); $data = json_decode($json, true); print_r($data);
Hasil output adalah seperti berikut:
Array ( [name] => Typechoer [age] => 25 [gender] => male [skills] => Array ( [0] => PHP [1] => JavaScript [2] => CSS ) )
Seperti yang anda lihat, kami telah melaksanakan operasi menukar data JSON kepada tatasusunan PHP, dan jenis data kekal tidak berubah .
Selain menukar data JSON kepada tatasusunan PHP, anda juga boleh menukarnya kepada tatasusunan objek. Tatasusunan objek ialah tatasusunan objek stdClass, di mana setiap objek mewakili elemen. Kita tidak perlu mengambil berat tentang nama medan objek, kita hanya perlu mengaksesnya melalui sifat objek tersebut. Berikut ialah kaedah untuk menukar data JSON kepada tatasusunan objek PHP:
json_decode(string, false, 512, JSON_OBJECT_AS_ARRAY);
Seperti yang anda lihat, kami hanya perlu menetapkan parameter $assoc kepada false dan parameter $options kepada JSON_OBJECT_AS_ARRAY, dan kemudian gunakan fungsi json_decode( ) untuk melaksanakan operasi penukaran.
Begitu juga berdasarkan data JSON di atas, kita boleh menggunakan kod berikut untuk menukarnya menjadi tatasusunan objek PHP:
$json = file_get_contents('data.json'); $data = json_decode($json, false, 512, JSON_OBJECT_AS_ARRAY); print_r($data);
Hasil output adalah seperti berikut:
Array ( [name] => Typechoer [age] => 25 [gender] => male [skills] => Array ( [0] => PHP [1] => JavaScript [2] => CSS ) )
Disebabkan penggunaannya ialah tatasusunan objek, jadi kita boleh menggunakan sifat objek untuk mengakses data, contohnya:
echo $data[0]->name; // Typechoer echo $data[0]->skills[2]; // CSS
Jika terdapat sub-objek atau tatasusunan bersarang dalam data JSON, maka Apabila menukar kepada tatasusunan PHP atau tatasusunan objek, kami masih boleh mengekalkan sifat multidimensi data.
Berikut ialah contoh struktur bersarang data JSON:
{ "account": { "name": "Tom", "age": 28 }, "courses": [ { "name": "PHP", "hour": 80 }, { "name": "JavaScript", "hour": 60 } ] }
Kita boleh menggunakan kod berikut untuk menukarnya menjadi tatasusunan PHP:
$json = file_get_contents('data.json'); $data = json_decode($json, true); print_r($data);
Output adalah seperti berikut :
Array ( [account] => Array ( [name] => Tom [age] => 28 ) [courses] => Array ( [0] => Array ( [name] => PHP [hour] => 80 ) [1] => Array ( [name] => JavaScript [hour] => 60 ) ) )
Begitu juga, kita juga boleh menukarnya menjadi tatasusunan objek PHP:
$json = file_get_contents('data.json'); $data = json_decode($json, false, 512, JSON_OBJECT_AS_ARRAY); print_r($data);
Hasil output adalah seperti berikut:
Array ( [account] => Array ( [name] => Tom [age] => 28 ) [courses] => Array ( [0] => Array ( [name] => PHP [hour] => 80 ) [1] => Array ( [name] => JavaScript [hour] => 60 ) ) )
Seperti yang anda lihat, berbilang dimensi Struktur data dikekalkan.
Dalam artikel ini, kami memperkenalkan cara menukar data JSON kepada tatasusunan PHP atau tatasusunan objek. Menggunakan fungsi terbina dalam PHP json_decode(), kami boleh menukar antara data JSON dan data PHP dengan cepat Jika anda perlu berurusan dengan data JSON dalam pembangunan, maka pengetahuan ini pasti akan membantu anda.
Atas ialah kandungan terperinci Bagaimana untuk menukar data JSON ke dalam objek tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!