Wie man ein PHP-Objekt mit dynamischen Schlüsseln (Eigenschaftsnamen) durchläuft
Hallo zusammen. Ich bin neu in PHP und habe ein Problem bei der Arbeit mit JSON-Daten. Nach dem Dekodieren von JSON mit `json_decode()` erhalte ich ein stdClass-Objekt, dessen Eigenschaften (Schlüssel) im Voraus unbekannt sind. Zum Beispiel erhalte ich Produktdaten von einer externen API, und die Feldnamen können sich ändern (Preis, Menge, Beschreibung – aber die genaue Zusammensetzung der Felder ist unbekannt). Ich muss alle Eigenschaften dieses Objekts durchlaufen und auf dem Bildschirm ausgeben.
Hier ist ein Beispielcode, der bei mir nicht funktioniert:
```php
$json = '{"item1": {"name": "Produkt A", "price": 150}, "item2": {"name": "Produkt B", "price": 250}}';
$data = json_decode($json);
// Versuche, es wie ein Array zu durchlaufen – Fehler
foreach ($data as $key => $value) {
echo $key . ': ' . $value . '
'; } ``` Dieser Code gibt einen Fehler aus: "Invalid argument supplied for foreach()". Ich verstehe, dass `$data` ein Objekt und kein Array ist. Aber wie durchläuft man dann alle seine Eigenschaften, wenn ich ihre Namen nicht kenne? Ich habe versucht, `$data->$key` zu verwenden – hat auch nicht funktioniert.
'; } ``` Dieser Code gibt einen Fehler aus: "Invalid argument supplied for foreach()". Ich verstehe, dass `$data` ein Objekt und kein Array ist. Aber wie durchläuft man dann alle seine Eigenschaften, wenn ich ihre Namen nicht kenne? Ich habe versucht, `$data->$key` zu verwenden – hat auch nicht funktioniert.
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Arbeiten mit JSON in C++: Parsen und Serialisieren von Daten