Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie PHP-JSON in ein Objekt

So konvertieren Sie PHP-JSON in ein Objekt

藏色散人
藏色散人Original
2021-03-08 09:19:302307Durchsuche

So konvertieren Sie PHP-JSON in ein Objekt: Erstellen Sie zunächst eine PHP-Beispieldatei. Verwenden Sie dann „get_object_vars“, um den Klassentyp in ein Array zu konvertieren.

So konvertieren Sie PHP-JSON in ein Objekt

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP7.1, Dell G3-Computer.

php-JSON-String in Array oder Objekt

Die im Internet gefundene Methode besteht darin, get_object_vars zu verwenden, um den Klassentyp in ein Array zu konvertieren, und ihn dann mit foreach zu durchlaufen.

$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"}]';

Verwenden Sie zunächst json_decode, um einen String im JSON-Format zu erstellen Zum Codieren

    $students = json_decode($json);

verwenden Sie $students direkt in der PHP-Datei:

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

und der Fehler wird wie folgt gemeldet:

Fatal error
: Cannot use objectof type stdClass as array in 
D:\wamp\www\test.php
on line 
18

Dann drucken Sie $students:

var_dump($students);

und geben aus:

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) "软件工程"
        }
    }

Es ​​ist ersichtlich, dass die Das zurückgegebene Ergebnis ist ein Objekt anstelle eines Arrays. Der Zugriff sollte in Objektform erfolgen:

 foreach($students as $obj){
         echo "姓名:".$obj->name."年龄:".$obj->age."专业:".$obj->subject."<br/>";
    }

Das Ausgabeergebnis ist:

Name: Zhang string$json [ , bool$assoc ] )


Beschreibung: Akzeptiert eine JSON-Formatzeichenfolge und konvertiert sie in eine PHP-Variable. [Empfohlen: „

PHP-Video-Tutorial

“] json_decode kann zwei Parameter empfangen:

json: eine Zeichenfolge im jsonstring-Format, die dekodiert werden soll.

assoc: Wenn dieser Parameter TRUE ist, wird ein Array anstelle eines Objekts zurückgegeben.

$students = json_decode($json,true);
Jetzt $students drucken:

    var_dump($students);

Ausgabe:

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) "软件工程"
        }
    }
Zu diesem Zeitpunkt ist $students ein Array und kann direkt verwendet werden:

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

Das Ausgabeergebnis ist:

Name: Zhang Xuemei Alter: 27 Hauptfach : Informatik und Technologie

Name: Zhang Peilin Alter: 21 Hauptfach: Software Engineering

Zusammenfassung:


Zwei Methoden zur Verarbeitung von JSON-Formatzeichenfolgen in PHP-Code:

Methode eins:

$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 />";}
Methode zwei:

$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 />";

------------------------------------------------ -- ------------------------------------------------ -- --------------------------------

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie PHP-JSON in ein Objekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn