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
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
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.