JSON-Validator: JSON prüfen, Fehler finden, reparieren und in YAML umwandeln
Mit dem JSON-Validator auf s-edv.com JSON beim Tippen prüfen, Fehlerstellen verstehen, Reparaturen übernehmen, formatieren, sortieren und in YAML umwandeln, mit Gegenprobe per python3 -m json.tool.
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

JSON begegnet Administratoren täglich: als Antwort einer REST-API, als Konfigurationsdatei von Diensten wie Grafana oder Home Assistant, in strukturierten Logs oder als Ausgabe von Skripten und Sprachmodellen. Schon ein einziges überzähliges Komma macht die Datei unbrauchbar, und die Fehlermeldungen vieler Programme sind knapp. Der JSON-Validator auf s-edv.com prüft JSON beim Tippen, zeigt die Fehlerstelle mit Zeile, Spalte und Ursache, schlägt Reparaturen vor und gibt das Ergebnis formatiert, minifiziert, als Baum oder als YAML aus. Diese Anleitung führt durch alle Funktionen, erklärt die wichtigsten JSON-Regeln nach RFC 8259 und zeigt, wie Sie jedes Ergebnis im Terminal mit Python gegenprüfen.
Voraussetzungen
Sie brauchen nur einen aktuellen Browser, eine Anmeldung ist nicht nötig. Das Eingabefeld nimmt laut Anzeige bis zu 5 MB auf. Für die Gegenprobe im Terminal genügt Python 3, dessen Modul json und das Kommando python3 -m json.tool zur Standardbibliothek gehören. Wer YAML-Ausgaben prüfen will, braucht zusätzlich PyYAML, das auf vielen Linux-Distributionen als Paket python3-yaml bereits installiert ist. Alternativ eignet sich jq, falls es auf Ihrem Server vorhanden ist.
Vorwissen: Sie sollten wissen, wo die JSON-Datei herkommt und wohin sie soll, etwa in einen Dienst-Container oder an eine API. Die Syntaxregeln erklärt Schritt 2.
Schritt 1: JSON einfügen und prüfen lassen
Öffnen Sie den JSON-Validator. Im Bereich „JSON-Eingabe“ steht das große Textfeld mit der Beschriftung „JSON einfügen“ und dem Zusatz, dass beim Tippen geprüft wird. Einen Prüfknopf gibt es nicht. Unter dem Feld zeigt ein Zähler die Größe, etwa „140 Zeichen · 140 B von max. 5 MB“. Mit „Leeren“ setzen Sie das Feld zurück.
Zum Ausprobieren gibt es drei Vorlagen: „Beispiel: API-Antwort“, „Beispiel: Konfiguration“ und „Beispiel mit Fehlern“. Bei gültigem JSON erscheint „Gültiges JSON“ mit einer Kurzbeschreibung der Wurzel, zum Beispiel „Objekt · 5 Schlüssel oben“. Bei einem Fehler erscheint „Ungültiges JSON“ mit Position und Ursache, darunter der Abschnitt „Fehlerstelle“ mit einer Erklärung und einem Ausschnitt der betroffenen Zeilen, in dem ein Zirkumflex (^) die genaue Spalte markiert. Der Knopf „Im Eingabefeld zeigen“ setzt den Cursor im Test direkt an diese Stelle.
Praxisbeispiel: Ein Kollege hat die Konfiguration eines Backup-Jobs aus einer Mail kopiert, der Dienst startet nicht mehr. Fügen Sie den Inhalt ein. Das „Beispiel mit Fehlern“ zeigt genau so einen Fall: Kommentar, Schlüssel ohne Anführungszeichen, einfache Anführungszeichen, Kommas am Ende und True statt true. Der Validator meldet den ersten Fehler, hier „Zeile 2, Spalte 3: Kommentar“.
Verifizieren: Python meldet denselben Fehlerort. Speichern Sie den Inhalt als Datei und lassen Sie ihn prüfen. Bei einem Komma am Ende eines Arrays lautet die Meldung zum Beispiel:
printf '{"a": [1, 2,]}' > test.json
python3 -m json.tool test.json
# Illegal trailing comma before end of array: line 1 column 12 (char 11)
Schritt 2: Fehlermeldungen verstehen
JSON ist in RFC 8259 bewusst streng definiert. Schlüssel und Zeichenketten stehen immer in geraden doppelten Anführungszeichen, erlaubte Werte sind Zeichenketten, Zahlen, true, false, null, Objekte und Arrays. Was in JavaScript, Python oder YAML funktioniert, ist in JSON oft verboten. Im Test lieferte der Validator für typische Fehler diese Meldungen:
- „Typografische Anführungszeichen“ bei {„name“: „web“}, mit dem Hinweis, dass solche Zeichen oft durch die Autokorrektur von Textprogrammen entstehen.
- „Ungültige Zahl „01067““ bei {"plz": 01067}. Führende Nullen sind verboten, Postleitzahlen gehören als Zeichenkette "01067" in die Datei.
- „Ungültige Escape-Sequenz „\U““ bei einem Windows-Pfad wie "C:\Users". Ein Backslash muss verdoppelt werden: "C:\\Users".
- „Zeilenumbruch in einer Zeichenkette“, wenn ein echter Umbruch in einem Text steht. Schreiben Sie ihn als \n.
- „„NaN“ ist kein JSON-Wert“ bei NaN, Infinity oder undefined.
- „Unerwartetes Ende“ bei abgeschnittenem JSON, mit dem Hinweis, welche Klammer aus welcher Zeile nicht geschlossen wurde.
- „Weitere Daten nach dem Ende“ bei JSON Lines, also mehreren Objekten untereinander, wie sie in Logs üblich sind.
- „Byte-Order-Mark am Anfang“, wenn ein Editor das unsichtbare Zeichen U+FEFF vor das JSON geschrieben hat.
Eine einzelne Zahl wie 42 ist übrigens gültiges JSON. Der Validator akzeptiert sie und weist darauf hin, dass ältere Parser ein Objekt oder Array erwarten.
Verifizieren: Auch Python lehnt diese Fälle ab. Für die führende Null meldet printf '{"plz": 01067}' | python3 -m json.tool den Fehler „Expecting ',' delimiter: line 1 column 10“. Die Spaltenangabe weicht um eins ab, weil Python die Stelle nach der Null meldet, der Validator die Zahl selbst. Ein BOM erkennt Python mit „Unexpected UTF-8 BOM“.
Schritt 3: Reparatur vorschlagen und übernehmen
Bei einem Fehler steht neben „Im Eingabefeld zeigen“ der Knopf „Reparatur vorschlagen“. Er erzeugt eine korrigierte Fassung, prüft sie erneut und zeigt sie zusammen mit einer Liste der Änderungen an. Für das Fehlerbeispiel meldete das Tool „Vorschlag ergibt gültiges JSON. Bitte prüfen Sie ihn, bevor Sie ihn übernehmen:“ und listete „Kommentare entfernt“, „Schlüssel in Anführungszeichen gesetzt“, „einfache durch doppelte Anführungszeichen ersetzt“, „Kommas am Ende entfernt (2×)“, „True/False/None kleingeschrieben“ und „fehlende Kommas ergänzt“.
Mit „Vorschlag übernehmen“ ersetzt der Vorschlag Ihre Eingabe, mit „Verwerfen“ bleibt die Eingabe unverändert. Beides haben wir geprüft. Fehler mit unklarer Bedeutung repariert das Tool bewusst nicht. Bei der führenden Null meldete es „Für diesen Fehler gibt es keinen automatischen Vorschlag.“ Das ist richtig so: Ob 01067 eine Postleitzahl oder die Zahl 1067 sein soll, kann nur ein Mensch entscheiden.
Lesen Sie den Vorschlag vor dem Übernehmen. Ein entfernter Kommentar kann eine wichtige Information gewesen sein, etwa „nur Testserver“. Legen Sie solche Hinweise bei Bedarf in einen eigenen Schlüssel wie "_hinweis".
Verifizieren: Nach dem Übernehmen muss oben „Gültiges JSON“ stehen. Kopieren Sie das Ergebnis in eine Datei und prüfen Sie es mit python3 -m json.tool datei.json. Erscheint die formatierte Ausgabe ohne Fehlermeldung, ist die Datei gültig.
Schritt 4: Ausgabe formatieren, sortieren und exportieren
Im Bereich „Ausgabe“ wählen Sie zwischen „Formatiert“, „Minifiziert“, „Baum“ und „YAML“. Unter „Einrückung“ stehen „2 Leerzeichen“, „4 Leerzeichen“ und „Tabulator“ zur Wahl. Der Hinweis darunter erklärt: „Tabulator-Einrückung gilt nur für JSON; YAML wird mit Leerzeichen eingerückt.“ Die Schalter „Schlüssel sortieren“ und „Einfärben“ steuern Reihenfolge und Syntaxfarben.
„Minifiziert“ entfernt alle Leerzeichen und Umbrüche, praktisch für Umgebungsvariablen oder curl-Aufrufe. „Baum“ zeigt Objekte und Arrays aufklappbar mit Typ und Anzahl, etwa „Array · 2 Einträge“, dazu „Alle aufklappen“ und „Alle zuklappen“. Das hilft bei großen API-Antworten, in denen Sie einen bestimmten Wert suchen.
„Schlüssel sortieren“ ordnet laut Seite in allen Ebenen nach Zeichencodes wie jq -S: Ziffern vor Großbuchstaben, Großbuchstaben vor Kleinbuchstaben, Umlaute nach z. Sortierte Dateien lassen sich mit diff oder in Git leichter vergleichen, etwa wenn Sie zwei Exporte einer Firewall-Konfiguration gegenüberstellen.
„Kopieren“ legt die Ausgabe in die Zwischenablage, „Herunterladen“ speichert sie. Im Test hieß die Datei daten.json bzw. bei YAML-Ausgabe daten.yaml.
Verifizieren: Python erzeugt dieselben Fassungen. Für die reparierte Backup-Konfiguration stimmten minifizierte Ausgabe, sortierte Reihenfolge und die vom Tool genannte Ausgabegröße von 137 B überein:
python3 -m json.tool --compact cfg.json
python3 -m json.tool --indent 2 --sort-keys cfg.json
python3 -m json.tool --indent 2 cfg.json | head -c -1 | wc -c
# 137
Schritt 5: Kennzahlen und versteckte Stolperfallen
Unter „Kennzahlen und Hinweise“ zeigt das Tool bei gültigem JSON die Kacheln „Wurzel“, „Schlüssel“, „Tiefe“, „Eingabe“ und „Ausgabe“, letztere mit der Größenänderung in Prozent. Wichtiger sind die Hinweise zu Problemen, die syntaktisch erlaubt sind, aber zu falschen Daten führen:
Doppelte Schlüssel: Bei {"a": 1, "a": 2} meldete das Tool „Doppelte Schlüssel: „a“ (Zeile 1)“ und übernahm wie die meisten Parser den letzten Wert. Python verhält sich identisch und gibt {"a": 2} aus. In einer Konfigurationsdatei bedeutet das: Die erste Einstellung wird stillschweigend ignoriert.
Große Ganzzahlen: JavaScript stellt Ganzzahlen nur bis 9.007.199.254.740.991 exakt dar. Bei 9007199254740993 warnte das Tool unter „Große Ganzzahlen“ und erklärte, dass die Zahl in formatierter, minifizierter und Baum-Ausgabe unverändert bleibt, in der YAML-Ausgabe aber gerundet wird. Genau das zeigte der Test: Im YAML stand 9007199254740992. Übertragen Sie Datenbank-IDs dieser Größe deshalb als Zeichenkette.
Prototype Pollution: Schlüssel wie __proto__ können in JavaScript-Anwendungen das Verhalten aller Objekte verändern. Das Tool meldete „Schlüssel verworfen: __proto__“ und ließ ihn in allen Ausgaben weg. Beachten Sie: Die Ausgabe ist dann nicht mehr inhaltsgleich mit der Eingabe.
Verifizieren: Den Effekt doppelter Schlüssel prüfen Sie mit printf '{"a":1,"a":2}' | python3 -m json.tool. Die Ausgabe zeigt nur noch "a": 2.
Schritt 6: JSON in YAML umwandeln
Viele Werkzeuge im Admin-Alltag erwarten YAML, etwa Docker Compose, Ansible oder Kubernetes. Mit der Ausgabe „YAML“ wandeln Sie JSON direkt um. Heikel sind dabei Zeichenketten, die YAML sonst anders deuten würde. Der Validator setzt sie im Test korrekt in einfache Anführungszeichen: '01067', 'yes', 'on', 'no', 'null', '2026-10-01', '8080:80', 'a #b' und '*.example.com'. Ohne diese Anführungszeichen würde ein YAML-Parser aus yes einen Wahrheitswert, aus 01067 eine Zahl machen. Mehrzeilige Texte gibt das Tool als Block mit |- aus.
Verifizieren: Wir haben ein Testobjekt mit über 30 kritischen Werten umgewandelt und das YAML mit PyYAML zurückgelesen. Bis auf die erwartete Rundung der großen Ganzzahl waren alle Werte identisch. So prüfen Sie eine eigene Umwandlung:
python3 -c 'import json,yaml; a=json.load(open("daten.json")); b=yaml.safe_load(open("daten.yaml")); print("gleich" if a==b else "UNTERSCHIED")'
Typische Fehler
JSON aus einer Mail oder einem Word-Dokument kopiert: Die Autokorrektur hat gerade Anführungszeichen durch typografische ersetzt. Der Validator meldet „Typografische Anführungszeichen“, die Reparatur behebt das.
Kommentare in Konfigurationsdateien: Formate wie JSONC (etwa die Einstellungen von Visual Studio Code) oder JSON5 erlauben Kommentare, Standard-JSON nicht. Prüfen Sie, ob das Zielprogramm wirklich striktes JSON erwartet.
Log-Datei als Ganzes eingefügt: JSON Lines enthält ein Objekt pro Zeile und führt zu „Weitere Daten nach dem Ende“. Prüfen Sie einzelne Zeilen oder fassen Sie die Objekte in einem Array zusammen.
Leeres Feld: Ist das Feld leer oder enthält nur Leerzeichen, zeigt das Tool keine Meldung, sondern unter „Kennzahlen und Hinweise“ nur „Kennzahlen erscheinen, sobald gültiges JSON vorliegt.“
Geheimnisse in der Eingabe: API-Antworten und Konfigurationen enthalten oft Tokens oder Passwörter. Das Tool arbeitet laut Seite lokal, trotzdem gilt die Grundregel: Entfernen Sie Zugangsdaten, bevor Sie Daten in ein Web-Werkzeug einfügen, oder prüfen Sie solche Dateien mit python3 -m json.tool auf dem Server.
Häufige Fragen
Werden meine Daten an einen Server gesendet?
Laut Seite nein: Prüfen, Formatieren und Umwandeln laufen per JavaScript im Browser, gespeichert werden nur Ansichtseinstellungen. Im Test blieb die Zahl der Netzwerkanfragen bei allen Aktionen gleich.
Warum zeigt der Validator nur einen Fehler?
Ein Parser bricht beim ersten Fehler ab, weil alles danach unklar ist. Beheben Sie den Fehler oder nutzen Sie „Reparatur vorschlagen“, die mehrere typische Fehler auf einmal behebt.
Ändert das Formatieren meine Zahlen?
Nein. Das Tool gibt Zahlen in formatierter und minifizierter Ausgabe so aus, wie sie in der Eingabe stehen. Im Test blieben 1.10 und 1e3 unverändert. Nur die YAML-Ausgabe normalisiert Zahlen, aus 1.10 wurde dort 1.1.
Wie prüfe ich JSON auf einem Server ohne Browser?
Mit python3 -m json.tool datei.json oder, falls installiert, mit jq . datei.json. Beide melden Zeile und Spalte des Fehlers.
Testumfang
Getestet wurde der Validator am 1. Oktober 2026 in einem Chromium-Browser mit den drei Vorlagen, zwölf typischen Fehlerfällen, Reparatur samt Übernehmen und Verwerfen sowie allen vier Ausgabeformaten und dem Download. Formatierung, Minifizierung, Sortierung und Ausgabegröße stimmten mit Python json überein, die YAML-Ausgabe ergab beim Zurücklesen mit PyYAML dieselben Daten. Einzige Abweichung war die vom Tool selbst angekündigte Rundung sehr großer Ganzzahlen im YAML.
Fazit
Der JSON-Validator ist mehr als ein Syntaxprüfer. Die verständlichen Fehlermeldungen, die nachvollziehbare Reparatur und die Hinweise auf doppelte Schlüssel oder große Zahlen ersparen viel Rätselraten bei defekten Konfigurationen und API-Antworten. Die YAML-Umwandlung setzt kritische Werte korrekt in Anführungszeichen und eignet sich damit für Compose- und Ansible-Dateien. Für Dateien mit Zugangsdaten und für automatisierte Prüfungen bleibt python3 -m json.tool auf dem Server die passende Ergänzung.
Weiterführende Anleitungen und Quellen
- Strukturierte JSON-Ausgaben aus lokalen LLMs: Grammar-Constraints
- Logs zentralisieren mit Grafana Loki
- Apprise API mit Docker Compose: ein Endpunkt für alle Admin-Benachrichtigungen
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format
- Python-Dokumentation: json und json.tool
- jq-Handbuch
- YAML 1.2.2 Spezifikation


