Cara menukar php json kepada objek: 1. Gunakan json_decode untuk mengekod rentetan dalam format JSON 2. Aksesnya melalui "foreach($students as $obj){...}".
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer Dell G3
Cara menukar php json menjadi objek?
Tukar rentetan php json kepada tatasusunan atau objek
Kaedah yang terdapat di Internet ialah menggunakan get_object_vars untuk menukar jenis kelas kepada tatasusunan dan kemudian gunakan foreach untuk melintasi Itu sahaja
$array = get_object_vars($test); $json= '[{"id":"1","name":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"},{"id":"2","name":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"}]';
Mula-mula gunakan json_decode untuk mengekod rentetan dalam format JSON,
$students = json_decode($json);
Gunakan $students terus dalam fail PHP:
for($i=0;$i<count($students);$i++){ echo "姓名:".$students[$i]['name']."年龄:".$students[$i]['age']."专业:".$students[$i]['subject']."<br/>"; }
Ralat dilaporkan seperti berikut:
Ralat maut: Tidak boleh menggunakan objectof type stdClass sebagai tatasusunan dalam D:wampwwwtest.phppada talian 18
Pada masa ini, cetak $pelajar:
var_dump($students);
akan mengeluarkan:
array(2) { [0]=> object(stdClass)#2 (4) { ["id"]=> string(1)"1" ["name"]=> string(9)"张雪梅" ["age"]=> string(2)"27" object(stdClass)#3 (4) { 这个就说明转换的json字符串转为对象而非数组,请看下面的红色背景字 ["subject"]=>string(24) "计算机科学与技术" } [1]=> ["id"]=> string(1)"2" ["name"]=> string(9)"张沛霖" ["age"]=> string(2)"21" ["subject"]=> string(12) "软件工程" } }
Ia dapat dilihat bahawa hasil yang dikembalikan adalah objek dan bukannya tatasusunan . Harus diakses dalam bentuk objek:
foreach($students as $obj){ echo "姓名:".$obj->name."年龄:".$obj->age."专业:".$obj->subject."<br/>"; }
Hasil output ialah:
Nama: Zhang Xuemei Umur: 27 Major: Sains Komputer dan Teknologi
Nama: Zhang Peilin Umur: 21 Major: Kejuruteraan Perisian
bercampurjson_decode ( string$json [, bool$assoc ] )
Penerangan: Terima rentetan format JSON dan tukar ia adalah pembolehubah PHP.
json_decode boleh menerima dua parameter:
json: rentetan dalam jsonformat rentetan untuk dinyahkod.
assoc: Apabila parameter ini TRUE, tatasusunan akan dikembalikan dan bukannya objek.
$students = json_decode($json,true);
Cetak $pelajar pada masa ini:
var_dump($pelajar);
Output:
array(2) { [0]=> array(4) { ["id"]=> string(1)"1" ["name"]=> string(9)"张雪梅" ["age"]=> string(2)"27" ["subject"]=>string(24) "计算机科学与技术" } [1]=> array(4) { ["id"]=> string(1)"2" ["name"]=> string(9)"张沛霖" ["age"]=> string(2)"21" ["subject"]=>string(12) "软件工程" } }
Pada masa ini masa , $pelajar hanyalah tatasusunan, anda boleh menggunakannya secara terus:
for($i=0;$i<count($students);$i++){ echo "姓名:".$students[$i]['name']."年龄:".$students[$i]['age']."专业:".$students[$i]['subject']."<br/>"; }
Hasil output ialah:
Nama: Zhang Xuemei Umur: 27 Major: Sains Komputer dan Teknologi
Nama: Zhang Peilin Umur : 21 Major: Kejuruteraan Perisian
Ringkasan:
Dua kaedah memproses rentetan format JSON dalam kod PHP:
Kaedah satu:
$json= '[{"id":"1","name":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"},{"id":"2","name":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"}]'; $students= json_decode($json);//得到的是 object foreach($studentsas $obj){ echo "姓名:".$obj->name." 年 龄:".$obj->age." 专 业:".$obj->subject."<br />"; }
Kaedah 2:
$json= '[{"id":"1","name":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"},{"id":"2","name":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"}]'; $students= json_decode($json, true);//得到的是 array for($i=0;$i<count($students);$i++){ echo "姓名:".$students[$i]['name']." 年 龄:".$students[$i]['age']." 专 业:".$students[$i]['subject']."<br />";
Pembelajaran yang disyorkan: "Tutorial Video PHP"
- -- ------------------------------------------------ -- ------------------------------------------------ -- --------------------------
Atas ialah kandungan terperinci Bagaimana untuk menukar php json menjadi objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!