Rumah >pembangunan bahagian belakang >masalah PHP >Mari kita bincangkan tentang cara menukar data json kepada tatasusunan atau objek php
Format JSON ialah format pertukaran data yang ringan Disebabkan kelebihan kesederhanaan, kemudahan penggunaan, kelajuan dan kecekapan, ia telah menjadi format data yang digunakan secara meluas. Dalam PHP, kita boleh menggunakan fungsi json_decode() untuk menukar rentetan JSON kepada tatasusunan atau objek PHP. Artikel ini akan memperkenalkan cara menukar data berformat JSON kepada tatasusunan atau objek PHP, dan juga meneroka cara mengendalikan tatasusunan dan objek dalam JSON.
1. Tukar rentetan JSON kepada tatasusunan PHP
Berikut ialah contoh data JSON:
{ "name": "Tom", "age": 26, "email": "tom@example.com", "hobbies": ["reading", "swimming", "traveling"], "address": { "city": "Beijing", "province": "Beijing", "country": "China" } }
Kita boleh menggunakan fungsi json_decode() untuk menukarnya kepada Tatasusunan PHP:
$json = '{ "name": "Tom", "age": 26, "email": "tom@example.com", "hobbies": ["reading", "swimming", "traveling"], "address": { "city": "Beijing", "province": "Beijing", "country": "China" } }'; $array = json_decode($json, true);
Apabila memanggil fungsi json_decode(), parameter pertama dihantar dalam rentetan JSON untuk ditukar dan parameter kedua diluluskan dalam nilai Boolean untuk Menentukan sama ada objek ditukar ialah tatasusunan (benar) atau objek (salah), kerana secara lalai fungsi json_decode() menukar rentetan JSON kepada objek.
Kami menetapkan parameter kedua kepada benar, kemudian nilai pulangan ialah tatasusunan PHP, dan hasilnya adalah seperti berikut:
Array ( [name] => Tom [age] => 26 [email] => tom@example.com [hobbies] => Array ( [0] => reading [1] => swimming [2] => traveling ) [address] => Array ( [city] => Beijing [province] => Beijing [country] => China ) )
2 Tukar rentetan JSON kepada objek PHP
Jika parameter kedua fungsi json_decode() ditetapkan kepada palsu, objek PHP dikembalikan. Berikut ialah kod sampel:
$json = '{ "name": "Tom", "age": 26, "email": "tom@example.com", "hobbies": ["reading", "swimming", "traveling"], "address": { "city": "Beijing", "province": "Beijing", "country": "China" } }'; $obj = json_decode($json, false);
Selepas menetapkan parameter kedua kepada palsu, $obj ialah objek PHP dan hasilnya adalah seperti berikut:
stdClass Object ( [name] => Tom [age] => 26 [email] => tom@example.com [hobbies] => Array ( [0] => reading [1] => swimming [2] => traveling ) [address] => stdClass Object ( [city] => Beijing [province] => Beijing [country] => China ) )
3 dalam Tatasusunan JSON
Apabila data JSON mengandungi tatasusunan, kami masih boleh menggunakan fungsi json_decode() untuk menukarnya kepada tatasusunan atau objek PHP. Berikut ialah contoh data JSON yang mengandungi tatasusunan:
{ "name": "Tom", "age": 26, "email": "tom@example.com", "hobbies": ["reading", "swimming", "traveling"], "scores": [ {"subject": "math", "score": 90}, {"subject": "physics", "score": 85}, {"subject": "chemistry", "score": 78} ] }
Kita boleh menggunakan fungsi json_decode() untuk menukarnya kepada tatasusunan PHP:
$json = '{ "name": "Tom", "age": 26, "email": "tom@example.com", "hobbies": ["reading", "swimming", "traveling"], "scores": [ {"subject": "math", "score": 90}, {"subject": "physics", "score": 85}, {"subject": "chemistry", "score": 78} ] }'; $array = json_decode($json, true);
Hasil yang ditukar adalah seperti berikut:
Array ( [name] => Tom [age] => 26 [email] => tom@example.com [hobbies] => Array ( [0] => reading [1] => swimming [2] => traveling ) [scores] => Array ( [0] => Array ( [subject] => math [score] => 90 ) [1] => Array ( [subject] => physics [score] => 85 ) [2] => Array ( [subject] => chemistry [score] => 78 ) ) )
Kami juga boleh menetapkan parameter kedua fungsi json_decode() kepada palsu untuk menukarnya menjadi objek PHP. Keputusan yang ditukar adalah seperti berikut:
stdClass Object ( [name] => Tom [age] => 26 [email] => tom@example.com [hobbies] => Array ( [0] => reading [1] => swimming [2] => traveling ) [scores] => Array ( [0] => stdClass Object ( [subject] => math [score] => 90 ) [1] => stdClass Object ( [subject] => physics [score] => 85 ) [2] => stdClass Object ( [subject] => chemistry [score] => 78 ) ) )
4. Memproses objek dalam JSON
Apabila data JSON mengandungi objek, kita juga boleh menggunakan fungsi json_decode() untuk menukarnya menjadi tatasusunan PHP atau objek. Berikut ialah contoh data JSON yang mengandungi objek:
{ "name": "Tom", "age": 26, "email": "tom@example.com", "hobbies": ["reading", "swimming", "traveling"], "address": { "city": "Beijing", "province": "Beijing", "country": "China" }, "scores": { "math": 90, "physics": 85, "chemistry": 78 } }
Kita masih boleh menukarnya kepada tatasusunan atau objek PHP menggunakan fungsi json_decode():
$json = '{ "name": "Tom", "age": 26, "email": "tom@example.com", "hobbies": ["reading", "swimming", "traveling"], "address": { "city": "Beijing", "province": "Beijing", "country": "China" }, "scores": { "math": 90, "physics": 85, "chemistry": 78 } }'; $array = json_decode($json, true); $obj = json_decode($json, false);
Tatasusunan PHP yang Ditukar dan objek adalah seperti berikut:
Array ( [name] => Tom [age] => 26 [email] => tom@example.com [hobbies] => Array ( [0] => reading [1] => swimming [2] => traveling ) [address] => Array ( [city] => Beijing [province] => Beijing [country] => China ) [scores] => Array ( [math] => 90 [physics] => 85 [chemistry] => 78 ) ) stdClass Object ( [name] => Tom [age] => 26 [email] => tom@example.com [hobbies] => Array ( [0] => reading [1] => swimming [2] => traveling ) [address] => stdClass Object ( [city] => Beijing [province] => Beijing [country] => China ) [scores] => stdClass Object ( [math] => 90 [physics] => 85 [chemistry] => 78 ) )
5 Menukar tatasusunan atau objek PHP kepada JSON
Selepas menyelesaikan penghuraian dan pengendalian data JSON, kami juga mungkin perlu menukar tatasusunan atau objek PHP. objek ditukar kepada rentetan berformat JSON untuk pemprosesan atau penghantaran seterusnya. Anda boleh menggunakan fungsi json_encode() untuk menukar tatasusunan atau objek PHP kepada rentetan berformat JSON. Berikut ialah kod sampel:
$array = array( 'name' => 'Tom', 'age' => 26, 'email' => 'tom@example.com', 'hobbies' => array('reading', 'swimming', 'traveling'), 'address' => array( 'city' => 'Beijing', 'province' => 'Beijing', 'country' => 'China' ), 'scores' => array( 'math' => 90, 'physics' => 85, 'chemistry' => 78 ) ); $json = json_encode($array);
Selepas memanggil fungsi json_encode(), nilai $json ialah rentetan format JSON yang ditukar dan hasilnya adalah seperti berikut:
{ "name":"Tom", "age":26, "email":"tom@example.com", "hobbies":["reading","swimming","traveling"], "address":{ "city":"Beijing", "province":"Beijing", "country":"China" }, "scores":{ "math":90, "physics":85, "chemistry":78 } }
6. Tukar tatasusunan atau objek PHP kepada JSON dan keluarkan
Jika anda perlu terus mengeluarkan data format JSON dalam PHP, kami boleh terus mengeluarkan hasilnya selepas memanggil fungsi json_encode(). Contoh berikut:
$array = array( 'name' => 'Tom', 'age' => 26, 'email' => 'tom@example.com', 'hobbies' => array('reading', 'swimming', 'traveling'), 'address' => array( 'city' => 'Beijing', 'province' => 'Beijing', 'country' => 'China' ), 'scores' => array( 'math' => 90, 'physics' => 85, 'chemistry' => 78 ) ); header('Content-Type: application/json'); echo json_encode($array);
Dalam contoh di atas, kami menetapkan maklumat pengepala respons melalui fungsi pengepala() dan menetapkan ContentType kepada aplikasi/json, menunjukkan bahawa data yang dikembalikan adalah dalam format JSON. Kemudian gunakan gema untuk mengeluarkan data JSON yang ditukar.
Kesimpulan
Artikel ini terutamanya memperkenalkan cara menukar data JSON kepada tatasusunan atau objek PHP. Ia juga membincangkan cara mengendalikan tatasusunan dan objek dalam JSON, dan menunjukkan penukaran tatasusunan atau objek PHP. Kaedah untuk rentetan berformat JSON. Saya harap artikel ini dapat membantu pembangun PHP.
Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menukar data json kepada tatasusunan atau objek php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!