Arbeiten mit JSON in PHP: Parsing und Serialisierung für Anfänger

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

Einführung in JSON und PHP



JSON (JavaScript Object Notation) ist ein leichtes Datenaustauschformat, das sich zum De-facto-Standard für die Kommunikation zwischen Webservern und Clients entwickelt hat. In der modernen Webentwicklung mit PHP werden Sie JSON überall begegnen: von API-Anfragen über Konfigurationsdateien bis hin zur Speicherung strukturierter Daten.



In diesem Artikel behandeln wir zwei grundlegende Prozesse der Arbeit mit JSON in PHP:



  • Serialisierung — die Umwandlung eines PHP-Arrays oder -Objekts in einen JSON-String (Funktion json_encode()).
  • Parsing (Deserialisierung) — die umgekehrte Umwandlung eines JSON-Strings in eine PHP-Variable (Funktion json_decode()).


Das Material richtet sich an PHP-Anfänger, daher gehen wir vom Einfachen zum Komplexen, mit detaillierten Codebeispielen.



Datenserialisierung: Die Funktion json_encode()



Serialisierung ist der Prozess der Umwandlung von Daten aus der internen PHP-Darstellung (Arrays, Objekte) in einen JSON-String. Dies ist notwendig, wenn Sie Daten an einen Client (Browser, mobile App) senden oder in einer universellen Datei/Datenbank speichern möchten.



Umwandlung eines Arrays in JSON



Der einfachste Fall ist die Serialisierung eines assoziativen Arrays:



<?php$user = [    "name" => "Ivan Petrov",    "age" => 28,    "email" => "ivan@example.com",    "is_active" => true];

$jsonString = json_encode($user, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);echo $jsonString;?>


Ergebnis der Ausführung:



{    "name": "Ivan Petrov",    "age": 28,    "email": "ivan@example.com",    "is_active": true}


Beachten Sie die Flags:

  • JSON_UNESCAPED_UNICODE — ermöglicht die Beibehaltung von Kyrillisch (ohne dieses Flag werden russische Zeichen in \\uXXXX umgewandelt).
  • JSON_PRETTY_PRINT — formatiert die Ausgabe mit Einrückungen für bessere Lesbarkeit (nützlich zum Debuggen, erhöht aber die String-Größe).


Umwandlung eines Objekts in JSON



PHP-Objekte können ebenfalls serialisiert werden. Dabei werden nur öffentliche (public) Eigenschaften einbezogen:



<?phpclass Product {    public $id;    public $title;    private $secretPrice; // wird nicht in JSON aufgenommen

public function __construct($id, $title, $price) { $this->id = $id; $this->title = $title; $this->secretPrice = $price; }}

$product = new Product(1, "Laptop", 75000);echo json_encode($product, JSON_UNESCAPED_UNICODE);// Ausgabe: {"id":1,"title":"Laptop"}?>


Arbeiten mit verschachtelten Strukturen



JSON unterstützt Verschachtelungen. PHP-Arrays beliebiger Tiefe werden korrekt umgewandelt:



<?php$data = [    "company" => "TechCorp",    "employees" => [        ["name" => "Anna", "position" => "Entwickler"],        ["name" => "Boris", "position" => "Designer"]    ],    "address" => [        "city" => "Moskau",        "street" => "Twerskaja"    ]];

echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);?>


JSON-Parsing: Die Funktion json_decode()



Parsing (Deserialisierung) ist der umgekehrte Prozess: Aus einem JSON-String erhalten wir Daten, mit denen PHP arbeiten kann.



Abrufen eines Objekts



Standardmäßig gibt json_decode() ein Objekt der Klasse stdClass zurück:



<?php$jsonString = '{"name":"Ivan Petrov","age":28,"email":"ivan@example.com"}';$user = json_decode($jsonString);

echo $user->name; // Ivan Petrovecho $user->age; // 28echo $user->email; // ivan@example.com?>


Abrufen eines Arrays



Wenn Sie das zweite Argument true übergeben, gibt die Funktion ein assoziatives Array zurück:



&l                

Blogs

Buchempfehlungen