Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich JSON mit „json_decode()' richtig in ein Array dekodieren?

Wie kann ich JSON mit „json_decode()' richtig in ein Array dekodieren?

Linda Hamilton
Linda HamiltonOriginal
2024-12-29 17:04:17491Durchsuche

How Can I Properly Decode JSON into an Array Using `json_decode()`?

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!

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