PHP: JSON mit Kommazahlen auslesen?
ich habe diesen JSON:
{
"ok":true,
"data":"MTS-K",
"prices":{
"XXXXXXX":{
"status":"open",
"e5":1.469,
"e10":1.239,
"diesel":1.349
},
"XXXXXXXXX":{
"status":"open",
"e5":1.149,
"e10":1.129,
"diesel":1.389
},
"XXXXXXXX":{
"status":"open",
"e5":1.139,
"e10":1.189,
"diesel":1.289
}
}
}
Den status auslesen geht:
echo json_decode($json)->prices->ID_HIER->status;
anstatt status dann diesel kommt im serverlog :
Undefined property: stdClass::$diesel
was ist da falsch ??
2 Antworten
Vom Beitragsersteller als hilfreich ausgezeichnet
![](https://images.gutefrage.net/media/user/RakonDark/1552185525294_nmmslarge__0_0_160_160_7f828fad18ee7edb96b8daceedaeeadb.png?v=1552185525000)
Nutzer, der sehr aktiv auf gutefrage ist
<?php
$data = '{
"ok":true,
"data":"MTS-K",
"prices":{
"A1234":{
"status":"open",
"e5":1.469,
"e10":1.239,
"diesel":1.349
},
"A5678":{
"status":"open",
"e5":1.149,
"e10":1.129,
"diesel":1.389
},
"A9101112":{
"status":"open",
"e5":1.139,
"e10":1.189,
"diesel":1.289
}
}
}';
echo json_decode($data)->prices->A1234->status;
Ausgabe : open
![](https://images.gutefrage.net/media/user/Babelfish/1600521171320_nmmslarge__47_47_690_690_7a344d30a971c61ba08b6baba08a321b.png?v=1600521171000)
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
PHP
Der Fehler liegt vermutlich eher darin, dass es auch Einträge ohne diesel gibt. Du musst also bei optionalen Feldern vorher testen, ob es diesel überhaupt gibt:
$data = json_decode($data);
if (isset($data->prices->ID_HIER->diesel)) {
echo $data->prices->ID_HIER->diesel;
} else {
echo 'Die haben keinen Diesel';
}
Woher ich das weiß:Berufserfahrung – Entwickle seit > 20 Jahren Anwendungen mit PHP.