Einen json - string decoden

providerwelt

Mitglied
Hallo

Habe wiedermal ein Riesenproblem.

Bis jetzt sah der string immer so aus

PHP:
{"dotxxx":{"addtransferdomain":{"1":"11.99"},"restoredomain":{"1":"45.00"},"addnewdomain":{"1":"11.99"},"renewdomain":{"1":"11.99"}},"

den habe ich wie folgt ausgelesen

PHP:
$obj = json_decode($response);
print $obj->dotxxx->addtransferdomain->{'1'};

und es funktioniert tadellos



Jetzt habe ich einen anderen string

PHP:
{"dotxxx":{"0":{"pricing":{"addtransferdomain":{"1":"20.29"},"restoredomain":{"1":"165.47"},"addnewdomain":{"1":"20.29"},"renewdomain":{"1":"20.29"}}

und das ist mein problem
So funktioniert es einfach nicht

PHP:
$obj = json_decode($response);
print $obj->dotxxx->0->pricing->addtransferdomain->{'1'};

Die Fehlermeldung lautet:
Fatal error: Cannot use object of type stdClass as array in /var/www/web14/html/directi-tes-2t.php on line 27


Dr. google hilft mir diesmal auch einfach nicht weiter

Ich hoffe auf eure hilfe
 
Lass dir doch mal das Object ausgeben, dann siehts du ja ob es Propertys oder Array-Elemente sind.

PHP:
echo "<pre>";
print_r($obj);
echo "</pre>";
 
Das Problem sind die Zahlenschlüssel. PHP hat da ein wenig Probleme wenn man auf ein Zahlenproperty eines Objektes zugreifen will. Bei normalen PHP-Klassen kann man sowas gar nicht erst erstellen.

Du kannst aber den JSON-Code in einen mehrstufigen Array laden. Dann kannst du auch auf die Zahlen zugreifen. Einfach json_decode um true erweitern
PHP:
$array = json_decode($response, true);
print $array['dotxxx'][0]['pricing']['addtransferdomain'][1];
 
Zurück