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

So konvertieren Sie einen PHP-JSON-String in ein Objekt

藏色散人
藏色散人Original
2020-07-03 10:32:382754Durchsuche

So konvertieren Sie einen PHP-JSON-String in ein Objekt: 1. Verwenden Sie „json_decode“, um den String im JSON-Format zu kodieren. 2. Akzeptieren Sie einen String im JSON-Format und konvertieren Sie ihn in eine PHP-Variable.

So konvertieren Sie einen PHP-JSON-String in ein Objekt

PHP-JSON-String in Array oder Objekt konvertieren

Die im Internet gefundene Methode ist die Verwendung get_object_vars Konvertieren Sie den Klassentyp in ein Array und verwenden Sie dann foreach, um ihn 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 zuerst json_decode, um die Zeichenfolge im JSON-Format zu kodieren,

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

dann wird der Fehler wie folgt gemeldet:

Schwerwiegender Fehler: Objekt vom Typ stdClass kann nicht als Array in D:wampwwwtest.phponline verwendet werden 18

Drucken Sie zu diesem Zeitpunkt $students:

 var_dump($students);

und geben Sie Folgendes 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 das zurückgegebene Ergebnis ein Objekt und nicht ein Objekt ist Array. Der Zugriff sollte in Objektform erfolgen:

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

Das Ausgabeergebnis ist:

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

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

Erklärung: Akzeptiert eine JSON-formatierte Zeichenfolge und konvertiert sie in eine PHP-Variable.

    json_decode 可接收两个参数:
    json:待解码的jsonstring 格式的字符串。

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

$students = json_decode($json,true);

Zu diesem Zeitpunkt $students ausgeben:

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:

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

Zusammenfassung:

Zwei Möglichkeiten, JSON-formatierte Zeichenfolgen in PHP-Code zu verarbeiten:

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

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

Empfohlen: „PHP-Tutorial

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie einen PHP-JSON-String 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