Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menukar php json menjadi objek

Bagaimana untuk menukar php json menjadi objek

藏色散人
Lepaskan: 2023-03-12 17:22:01
asal
2951 orang telah melayarinya

Cara menukar php json kepada objek: 1. Gunakan json_decode untuk mengekod rentetan dalam format JSON 2. Aksesnya melalui "foreach($students as $obj){...}".

Bagaimana untuk menukar php json menjadi objek

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"}]';
Salin selepas log masuk

Mula-mula gunakan json_decode untuk mengekod rentetan dalam format JSON,

    $students = json_decode($json);
Salin selepas log masuk

Gunakan $students terus dalam fail PHP:

    for($i=0;$i<count($students);$i++){
         echo "姓名:".$students[$i][&#39;name&#39;]."年龄:".$students[$i][&#39;age&#39;]."专业:".$students[$i][&#39;subject&#39;]."<br/>";
    }
Salin selepas log masuk

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);
Salin selepas log masuk

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) "软件工程"
        }
    }
Salin selepas log masuk

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/>";
    }
Salin selepas log masuk

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);
Salin selepas log masuk

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) "软件工程"
        }
    }
Salin selepas log masuk

Pada masa ini masa , $pelajar hanyalah tatasusunan, anda boleh menggunakannya secara terus:

for($i=0;$i<count($students);$i++){
     echo "姓名:".$students[$i][&#39;name&#39;]."年龄:".$students[$i][&#39;age&#39;]."专业:".$students[$i][&#39;subject&#39;]."<br/>";
}
Salin selepas log masuk

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= &#39;[{"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"}]&#39;;
$students= json_decode($json);//得到的是 object
foreach($studentsas $obj){
    echo "姓名:".$obj->name."   年 龄:".$obj->age."   专 业:".$obj->subject."<br />";
}
Salin selepas log masuk

Kaedah 2:

$json= &#39;[{"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"}]&#39;;
$students= json_decode($json, true);//得到的是 array
for($i=0;$i<count($students);$i++){
    echo "姓名:".$students[$i][&#39;name&#39;]."   年 龄:".$students[$i][&#39;age&#39;]."   专 业:".$students[$i][&#39;subject&#39;]."<br />";
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan