Was es tut
Prüft ein JSON-Dokument bei jedem Tastendruck und pinnt exakt fest, wo es bricht. Ein Badge wechselt zwischen Valid JSON und Invalid JSON, während du tippst. Ist das Dokument gültig, meldet ein Vier-Zellen-Panel seine Größe in Bytes (UTF-8), seinen Typ auf oberster Ebene, seine Key- bzw. Item-Anzahl und seine maximale Verschachtelungstiefe. Ist es ungültig, nennt der Fehler Zeile und Spalte, und ein zweites Panel zitiert die betroffene Zeile aus deiner Eingabe. Alles läuft lokal in deinem Browser; nichts, was du einfügst, wird irgendwohin geschickt.
So verwendest du es
- Füge JSON in JSON input ein oder tippe es. Sample lädt ein Demo-Dokument, Clear leert das Feld.
- Lies das Badge: Valid JSON (grün) oder Invalid JSON (rot).
- Bei gültigem Dokument lies das Statistik-Panel:
- bytes - die UTF-8-Größe des Dokuments, nicht seine Zeichenanzahl.
- type - eines von array, object, string, number, boolean, null.
- keys (Objekte) oder items (Arrays) - nur die Anzahl auf oberster Ebene.
- depth - maximale Verschachtelung; die oberste Ebene zählt als 1.
- Bei ungültigem Dokument lies
Line X, Column Y: <reason>und danach die zitierte Zeile darunter. - Copy input dupliziert deinen Text; Copy share link kodiert ihn in die URL (
?j=...).
Beispiele
{"name":"CosmoDev","free":true,"tools":["json","base64"]}
Ergebnis: Valid JSON, 57 bytes, Typ object, 3 keys, Tiefe 3. Die Strings in tools liegen zwei Ebenen unter der Wurzel, deshalb ist die Tiefe 3.
Ein Skalar ist ein vollständiges JSON-Dokument:
| Eingabe | Urteil | Statistik |
|---|---|---|
123 |
Valid JSON | 3 bytes, Typ number, Tiefe 1 |
true |
Valid JSON | 4 bytes, Typ boolean, Tiefe 1 |
null |
Valid JSON | 4 bytes, Typ null, Tiefe 1 |
Ein Fehler, auf seine Stelle gepinnt:
{"a": 1}
extra
Ergebnis: Line 2, Column 1 mit dem Grund, und das Panel darunter zitiert extra.
Wie JSON-Validierung funktioniert
Ein JSON-Parser liest das Dokument einmal von links nach rechts und stoppt beim ersten Zeichen, das an seiner Stelle nicht legal erscheinen darf. Das Tool bildet dann den Offset dieses Zeichens auf eine Position ab: Es zählt Zeilenumbrüche vor dem Offset für die Zeile und Zeichen seit dem letzten Zeilenumbruch für die Spalte. Beide sind 1-basiert; Line 2, Column 1 heißt also der allererste Anfang der zweiten Zeile. Das zitierte Panel druckt diese Zeile aus deiner Eingabe - der Auszug stammt also immer aus deinem Dokument, nie aus einer generischen Vorlage.
Vier Fehler verursachen in der Praxis die meisten ungültigen JSON-Dokumente:
| Fehler | Beispiel | Warum es scheitert |
|---|---|---|
| Trailing Comma | {"a":1,} |
nach einem Komma erwartet der Parser einen Key, und } ist keiner |
| Single Quotes | {'a':1} |
Strings und Keys müssen doppelte Anführungszeichen nutzen |
| Unquotierter Key | {a:1} |
Keys sind Strings, und Strings stehen in Anführungszeichen |
| Kommentar | {"a":1} //x |
JSON definiert überhaupt keine Kommentare |
Keins davon ist eine Frage des Stils. Die JSON-Grammatik (RFC 8259) erlaubt für jedes exakt eine Schreibweise, und der Parser setzt sie durch. Diese Strenge ist der Sinn der Sache: Ein Dokument, das hier validiert, parse identisch in jedem konformen Parser, in jeder Sprache.
Gut zu wissen
- Nur der erste Fehler: der Parser stoppt beim ersten Problem. Behebe es, validiere erneut, und das nächste kommt zum Vorschein.
- Engine-Unterschiede: meldet die zugrunde liegende Engine keine Position, zeigt das Urteil trotzdem die rohe Meldung.
- Teilbar: deine Eingabe steckt in der URL (
?j=...) - ein Link stellt die exakte Ansicht wieder her. - Privat: sicher für Configs, Zugangsdaten und API-Payloads.
- Verwandte Tools: JSON Formatter, JSON Minify, JSON ↔ CSV Converter.