JSON-Verarbeitung in PHP: Vollständiger Leitfaden zur Arbeit mit JSON

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

JSON-Verarbeitung in PHP: Vollständiger Leitfaden



JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat, das zum De-facto-Standard für die Kommunikation zwischen Client und Server sowie zwischen verschiedenen Webdiensten geworden ist. In PHP ist die Arbeit mit JSON nativ implementiert und erfordert keine Installation zusätzlicher Erweiterungen, was es zu einer der bequemsten Sprachen für das Parsen und Generieren von JSON-Daten macht. In diesem Artikel werden wir alle Aspekte der JSON-Verarbeitung in PHP im Detail behandeln: von grundlegenden Funktionen bis hin zu fortgeschrittenen Techniken und Fehlerbehandlung.



Grundlegende PHP-Funktionen für die Arbeit mit JSON



PHP bietet zwei Schlüsselfunktionen für die Arbeit mit JSON:



  • json_encode($value, $options = 0, $depth = 512) — wandelt einen PHP-Wert (Array, Objekt, Zeichenkette, Zahl) in einen JSON-String um.
  • json_decode($json, $associative = false, $depth = 512, $options = 0) — dekodiert einen JSON-String zurück in einen PHP-Wert. Wenn der Parameter $associative auf true gesetzt ist, wird ein assoziatives Array zurückgegeben, andernfalls ein stdClass-Objekt.


Betrachten wir ein einfaches Beispiel:



<?php// Erstellen eines assoziativen Arrays$data = [    "name" => "Ivan",    "age" => 30,    "city" => "Moskau",    "skills" => ["PHP", "JavaScript", "Python"]];

// Kodieren in JSON$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);echo $json;// Ausgabe:// {// "name": "Ivan",// "age": 30,// "city": "Moskau",// "skills": ["PHP", "JavaScript", "Python"]// }

// Zurückdekodieren in ein Array$decoded = json_decode($json, true);echo $decoded['name']; // Ivan?>


Wichtige Optionen von json_encode



Die Funktion json_encode unterstützt viele Flags, die das Kodierungsverhalten ändern. Die nützlichsten davon sind:



  • JSON_UNESCAPED_UNICODE — maskiert keine Unicode-Zeichen (kyrillische Schrift, Emojis). Ohne dieses Flag werden russische Buchstaben in \\uXXXX umgewandelt.
  • JSON_PRETTY_PRINT — formatiert die Ausgabe mit Einrückungen und Zeilenumbrüchen für bessere Lesbarkeit.
  • JSON_NUMERIC_CHECK — wandelt numerische Zeichenketten in Zahlen um.
  • JSON_FORCE_OBJECT — erzwingt die Erstellung eines Objekts anstelle eines Arrays, selbst wenn das Array leer oder indiziert ist.
  • JSON_PRESERVE_ZERO_FRACTION — behält den Bruchteil für ganze Zahlen bei (z. B. 10.0).


Beispiel für die Kombination von Optionen:



<?php$data = ['product' => 'Buch', 'price' => '1500.50', 'count' => 5];echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_NUMERIC_CHECK);// {"product":"Buch","price":1500.5,"count":5}?>


Verarbeitung verschachtelter Strukturen und komplexer Objekte



PHP ermöglicht die Arbeit mit tief verschachtelten JSON-Strukturen. Betrachten wir ein Beispiel für das Parsen einer komplexen API-Antwort:



<?php// Stellen wir uns vor, dies ist eine Antwort von einer externen API$apiResponse = '{    "status": "success",    "data": {        "users": [            {"id": 1, "name": "Anna", "roles": ["admin", "editor"]},            {"id": 2, "name": "Peter", "roles": ["user"]}        ],        "pagination": {            "page": 1,            "totalPages": 3        }    }}';

$parsed = json_decode($apiResponse, true);

// Alle Benutzernamen extrahieren$names = array_column($parsed['data']['users'], 'name');print_r($names); // Array ( [0] => Anna [1] => Peter )

// Prüfen, ob ein Benutzer die Rolle admin hatforeach ($parsed['data']['users'] as $user) { if (in_array('admin', $user['roles'])) { echo "{$user['name']} hat Administratorrechte"; }}?>


Fehlerbehandlung bei JSON



Eines der häufigsten Probleme ist ungültiges JSON. PHP bietet Funktionen zur Fehlerdiagnose:



  • json_last_error() — gibt den letzten Fehler zurück

Empfehlungen