Wie man JSON in PHP schön ausgibt: Ein vollständiger Leitfaden 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

Einleitung: Warum sieht JSON in PHP aus wie Kraut und Rüben?

\n\n

Stellen Sie sich folgende Situation vor: Sie haben ein PHP-Skript geschrieben, das Daten von einer API abruft oder eine Antwort für das Frontend erstellt. Sie geben das Ergebnis mit echo json_encode($data) aus – und erhalten im Browser oder in der Konsole so etwas wie:

\n\n
{"users":[{"id":1,"name":"Ivan","email":"ivan@example.com"},{"id":2,"name":"Maria","email":"maria@example.com"}]}
\n\n

Geben Sie zu, diese Zeile ohne Formatierung zu lesen ist, als würde man versuchen, die Handschrift eines Arztes zu entziffern. Besonders wenn es viele Daten gibt und die Verschachtelung tief ist. Genau hier kommt Pretty-Printing von JSON in PHP zur Hilfe.

\n\n

Dieser Artikel richtet sich an alle, die gerade erst mit PHP und JSON beginnen. Wir werden besprechen, wie man die JSON-Ausgabe schön, lesbar und debug-freundlich gestaltet. Sie lernen nicht nur die grundlegenden Methoden, sondern auch nützliche Lifehacks, die Ihnen Stunden an Nerven sparen. Los geht's!

\n\n

Was ist Pretty-Print und wozu braucht man es?

\n\n

Pretty-Print (wörtlich „schöner Druck") ist die Formatierung von Daten mit Einrückungen, Zeilenumbrüchen und Ausrichtung. Im Fall von JSON bedeutet das, dass Sie statt einer langen Zeile eine strukturierte Ausgabe erhalten, bei der jeder Schlüssel und Wert an seinem Platz ist.

\n\n

Stellen Sie sich vor, Sie debuggen einen API-Aufruf oder überprüfen eine Konfigurationsdatei. Ohne Pretty-Print verschwenden Sie viel Zeit damit, zu verstehen, wo ein Objekt endet und ein anderes beginnt. Mit Formatierung haben Sie alles auf einen Blick.

\n\n

In PHP gibt es mehrere Möglichkeiten, eine schöne JSON-Ausgabe zu erreichen. Wir beginnen mit der einfachsten und beliebtesten – der Verwendung des Flags JSON_PRETTY_PRINT.

\n\n

Methode 1: JSON_PRETTY_PRINT – Ihr bester Freund

\n\n

Der einfachste Weg, Pretty-Print JSON in PHP zu machen, ist die Verwendung der Konstante JSON_PRETTY_PRINT beim Aufruf der Funktion json_encode(). Diese Konstante ist seit PHP 5.4.0 verfügbar.

\n\n

Basisbeispiel

\n\n
<?php\n$data = [\n    'users' => [\n        ['id' => 1, 'name' => 'Ivan', 'email' => 'ivan@example.com'],\n        ['id' => 2, 'name' => 'Maria', 'email' => 'maria@example.com']\n    ]\n];\n\n$json = json_encode($data, JSON_PRETTY_PRINT);\necho $json;\n?>
\n\n

Ergebnis:

\n\n
{\n    "users": [\n        {\n            "id": 1,\n            "name": "Ivan",\n            "email": "ivan@example.com"\n        },\n        {\n            "id": 2,\n            "name": "Maria",\n            "email": "maria@example.com"\n        }\n    ]\n}
\n\n

Schon viel besser, oder? Jedes Array-Element ist jetzt in einer eigenen Zeile, Einrückungen sind gesetzt, die Struktur ist intuitiv lesbar.

\n\n

Kombinieren mit anderen Flags

\n\n

JSON_PRETTY_PRINT kann und sollte mit anderen Flags für eine feinere Abstimmung kombiniert werden. Zum Beispiel:

\n\n
    \n
  • JSON_UNESCAPED_UNICODE – escapet kyrillische und andere Unicode-Zeichen nicht (statt \\u0438\\u0432\\u0430\\u043d sehen Sie Ivan).
  • \n
  • JSON_UNESCAPED_SLASHES – escapet Schrägstriche nicht (nützlich für URLs).
  • \n
  • JSON_NUMERIC_CHECK – wandelt Zeichenketten, die Zahlen enthalten, in den numerischen Typ um.
  • \n
\n\n
<?php\n$data = [\n    'message' => 'Hallo, Welt!',\n    'url' => 'https://example.com/api/v1/users'\n];\n\n$json = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);\necho $json;\n?>
\n\n

Ergebnis:

\n\n
{\n    "message": "Hallo, Welt!",\n    "url": "https://example.com/api/v1/users"\n}
\n\n

Beachten Sie: Kyrillisch wird normal angezeigt, Schrägstriche sind nicht escapet. Genau so sollte man JSON normalerweise für Menschen ausgeben.

\n\n

Methode 2: Formatierung einer bereits vorhandenen JSON-Zeichenkette

\n\n

Was aber, wenn Sie bereits eine JSON-Zeichenkette haben (z. B. aus einer Datei oder einer Datenbank) und s

Blogs

Buchempfehlungen