Ich versuche, eine JSON-Zeichenfolge in ein Array zu dekodieren, erhalte jedoch den folgenden Fehler.
Schwerwiegender Fehler: Objekt vom Typ stdClass kann nicht als Array in C: \ wamp \ www \ temp \ asklaila.php in Zeile 6 verwendet werden
Hier ist der Code:
<?php
$json_string = 'http://www.domain.com/jsondata.json';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata);
print_r($obj['Result']);
?>
$ob->Result
stattdessen mit zugegriffen hätten .Antworten:
Gemäß der Dokumentation müssen Sie angeben, ob Sie ein assoziatives Array anstelle eines Objekts von
json_decode
möchten. Dies wäre der Code:quelle
Versuche dies
quelle
Dies ist ein verspäteter Beitrag, aber es gibt einen gültigen Fall für das Casting
json_decode
mit(array)
.Folgendes berücksichtigen:
Wenn
$jsondata
jemals eine leere Zeichenfolge zurückgegeben wird (wie es meiner Erfahrung nach häufig der Fall ist),json_decode
wird zurückgegebenNULL
, was zu dem Fehler führt. Warnung: Ungültiges Argument für foreach () in Zeile 3 . Sie könnten eine Zeile mit if / then-Code oder einen ternären Operator hinzufügen, aber IMO ist es sauberer, Zeile 2 einfach in ... zu ändern.... es sei denn, Sie verwenden
json_decode
Millionen großer Arrays gleichzeitig. In diesem Fall kann die Leistung beeinträchtigt werden, wie @ TCB13 hervorhebt.quelle
Nur für den Fall, dass Sie an PHP unter 5.2 arbeiten, können Sie diese Ressource verwenden.
http://techblog.willshouse.com/2009/06/12/using-json_encode-and-json_decode-in-php4/
http://mike.teczno.com/JSON/JSON.phps
quelle
Laut der PHP-Dokumentation hat die
json_decode
Funktion einen Parameter namens assoc, der die zurückgegebenen Objekte in assoziative Arrays konvertiertDa der Parameter assoc
FALSE
standardmäßig aktiviert ist , müssen Sie diesen Wert auf festlegenTRUE
um ein Array abzurufen.Untersuchen Sie den folgenden Code für eine Beispielimplikation:
welche Ausgänge:
quelle
Dies ändert es auch in ein Array:
quelle
json_decode($object, true);
dastrue
tut genau das gleiche, intern viel schneller.json_decode
+ Casting 45% schneller als das Ausführen beider Varianten vonjson_decode
. Auf der anderen Seite sind beide so schnell, dass der Unterschied vernachlässigbar ist , wenn Sie nicht buchstäblich Tausende von Dekodierungen benötigen .json_decode
unterstütze das zweite Argument, wenn es auf gesetzt ist,TRUE
wird einArray
statt zurückgegebenstdClass Object
. Überprüfen Sie die Handbuchseite vonjson_decode
Funktion alle unterstützten Argumente und seine Details zu sehen.Versuchen Sie zum Beispiel Folgendes:
quelle
Wenn Sie also ein Array möchten, können Sie das zweite Argument in der
json_decode
Funktion als 'true' übergeben .quelle
ich hoffe, dies wird dir helfen
Verwenden Sie die Json-Dekodierungsfunktion
Schleife über JSON-Array in PHP
Ergebnis : Computersysteme (Netzwerke)
quelle
in PHP json_decode konvertiere json Daten in PHP assoziiertes Array
Zum Beispiel:
$php-array= json_decode($json-data, true); print_r($php-array);
quelle
Bitte versuchen Sie dies
quelle
Versuchen Sie es wie folgt:
quelle