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 die Arbeit mit JSON in PHP

\n\n

JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat, das in der Webentwicklung weit verbreitet ist, um Informationen zwischen Client und Server zu übertragen. Trotz seines Ursprungs in JavaScript ist JSON zu einem universellen Standard geworden, der von praktisch allen Programmiersprachen, einschließlich PHP, unterstützt wird.

\n\n

In PHP ist die Arbeit mit JSON nativ implementiert, was die Verarbeitung dieses Formats einfach und effizient macht. In diesem Artikel werden wir im Detail besprechen, wie man JSON-Parsing (Umwandlung einer Zeichenkette in PHP-Datenstrukturen) und Serialisierung (Umwandlung von PHP-Daten in eine JSON-Zeichenkette) durchführt. Das Material richtet sich an Anfänger, daher werden wir uns vom Einfachen zum Komplexen bewegen.

\n\n

Am Ende des Artikels werden Sie lernen:

\n
    \n
  • PHP-Arrays und -Objekte in JSON umzuwandeln
  • \n
  • JSON-Zeichenketten in assoziative Arrays und Objekte zu parsen
  • \n
  • Fehler bei der Arbeit mit JSON zu behandeln
  • \n
  • Verschachtelte Datenstrukturen zu verwenden
  • \n
\n\n

Grundlegende Funktionen für die Arbeit mit JSON in PHP

\n\n

PHP bietet zwei Hauptfunktionen für die Arbeit mit JSON:

\n\n

json_encode() — Daten serialisieren

\n\n

Die Funktion json_encode() wandelt eine PHP-Variable (Array, Objekt, Zeichenkette, Zahl) in eine JSON-Zeichenkette um. Dies wird als Serialisierung bezeichnet.

\n\n

Beispiel für die grundlegende Verwendung:

\n\n
<?php\n// Assoziatives Array\n$user = [\n    "name" => "Ivan",\n    "age" => 28,\n    "email" => "ivan@example.com",\n    "is_active" => true\n];\n\n$json = json_encode($user);\necho $json;\n// Ausgabe: {"name":"Ivan","age":28,"email":"ivan@example.com","is_active":true}\n?>
\n\n

Die Funktion wandelt PHP-Datentypen automatisch in die entsprechenden JSON-Typen um:

\n
    \n
  • Zeichenketten → JSON-Zeichenketten
  • \n
  • Zahlen → JSON-Zahlen
  • \n
  • Boolesche Werte → true/false
  • \n
  • Arrays → JSON-Objekte oder -Arrays (abhängig von den Schlüsseln)
  • \n
  • NULL → null
  • \n
\n\n

json_decode() — JSON parsen

\n\n

Die Funktion json_decode() führt die umgekehrte Operation durch — sie wandelt eine JSON-Zeichenkette in eine PHP-Variable um. Dies wird als Parsing bezeichnet.

\n\n

Beispiel:

\n\n
<?php\n$jsonString = '{"name":"Ivan","age":28,"email":"ivan@example.com","is_active":true}';\n\n// Parsing in ein Objekt (Standard)\n$userObject = json_decode($jsonString);\necho $userObject->name; // Ausgabe: Ivan\n\n// Parsing in ein assoziatives Array (zweiter Parameter true)\n$userArray = json_decode($jsonString, true);\necho $userArray["name"]; // Ausgabe: Ivan\n?>
\n\n

Beachten Sie den zweiten Parameter der Funktion json_decode():

\n
    \n
  • false (Standard) — gibt stdClass-Objekte zurück
  • \n
  • true — gibt assoziative Arrays zurück
  • \n
\n\n

Erweiterte Möglichkeiten und Fehlerbehandlung

\n\n

Arbeiten mit verschachtelten Strukturen

\n\n

JSON unterstützt verschachtelte Objekte und Arrays. PHP kommt problemlos mit solchen Strukturen zurecht:

\n\n
<?php\n// Komplexe Datenstruktur\n$data = [\n    "company" => "TechCorp",\n    "employees" => [\n        ["name" => "Anna", "position" => "Developer"],\n        ["name" => "Peter", "position" => "Designer"],\n        ["name" => "Maria", "position" => "Manager"]\n    ],\n    "address" => [\n        "city" => "Moskau",\n        "street" => "Twerskaja",\n        "building" => 10\n    ]\n];\n\n$json = json_encode($data, JSON_PRETTY_PRINT);\necho $json;\n?>
\n\n

Das Ergebnis wird dank des Flags JSON_PRETTY_PRINT zur besseren Lesbarkeit formatiert.

\n\n

Fehlerbehandlung beim Parsing

\n\n

Bei der Arbeit mit externen Daten (API, Dateien) ist es wichtig zu überprüfen, ob das JSON korrekt ist. Verwenden Sie die Funktion json_last_error():

\n\n
<?php\n$badJson = '{"name":                

Blogs

Buchempfehlungen