Umgang mit dem Rätsel: Erstellen von Arrays mit json_decode()
Es tritt der Fehler „Schwerwiegender Fehler: Objekt vom Typ stdClass kann nicht als Array verwendet werden“ auf „ beim Versuch, JSON in ein Array zu dekodieren, weist auf ein häufiges Missverständnis hin. json_decode() erstellt standardmäßig ein Objekt, Arrays können jedoch abgerufen werden, indem das zweite Argument als „true“ angegeben wird.
Überprüfung des Codes:
Der unten bereitgestellte Code veranschaulicht dies problematischer Ansatz:
$json_string = 'http://www.example.com/jsondata.json'; $jsondata = file_get_contents($json_string); $obj = json_decode($jsondata); print_r($obj['Result']);
Der Lösung:
Um das Problem zu lösen, müssen wir lediglich „true“ als zweites Argument für json_decode() angeben und damit unsere Präferenz für ein assoziatives Array anstelle eines Objekts angeben. Der richtige Code wäre:
$result = json_decode($jsondata, true);
Zugriff auf Array-Werte:
Sobald Sie Ihr assoziatives Array haben, können Sie über eckige Klammern auf seine Werte zugreifen:
print_r($result['Result']);
Ganzzahlige Schlüsselarrays:
Wenn, Sie bevorzugen jedoch Ganzzahlschlüssel anstelle von Eigenschaftsnamen. Sie können dies erreichen, indem Sie array_values() nutzen:
$result = array_values(json_decode($jsondata, true));
Objektansatz:
Wenn Sie lieber beibehalten möchten In der Objektstruktur können Sie weiterhin über den Doppelpfeiloperator auf die gewünschte Eigenschaft zugreifen:
print_r($obj->Result);
Das obige ist der detaillierte Inhalt vonWie kann ich JSON mit „json_decode()' richtig in ein Array dekodieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!