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

Bagaimana untuk menukar php json kepada objek

藏色散人
Lepaskan: 2023-03-12 19:58:01
asal
2698 orang telah melayarinya

Cara menukar php json kepada objek: 1. Cipta fail sampel PHP 2. Tentukan pembolehubah "$json" 3. Dapatkan objek objek melalui kaedah "json_decode($json);"

Bagaimana untuk menukar php json kepada objek

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer Dell G3.

Bagaimana untuk menukar php json kepada 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:

   姓名:张雪梅   年龄:27   专业:计算机科学与技术
    姓名:张沛霖   年龄:21   专业:软件工程
Salin selepas log masuk

campuranjson_decode ( string$json [, bool$assoc ] )

Penerangan: Menerima rentetan format JSON dan menukarnya menjadi 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($students);
Salin selepas log masuk

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, $students ialah array, anda boleh Gunakan 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:

    姓名:张雪梅   年龄:27   专业:计算机科学与技术
    姓名:张沛霖   年龄:21   专业:软件工程
Salin selepas log masuk

Ringkasan:

Memproses rentetan format JSON dalam kod PHP Dua kaedah :

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 dua:

$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 kepada objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
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