JSON Validator & Formatter
JSON validieren, formatieren, minifizieren und in einer interaktiven Baumansicht visualisieren.
Was ist JSON?
JSON (JavaScript Object Notation) ist ein leichtgewichtiges, textbasiertes Datenaustauschformat, das in RFC 8259 (und ECMA-404) definiert ist. Trotz seines Namens ist JSON sprachunabhängig: Es wird nativ von Python, Java, Go, Ruby, Rust, Swift und jeder anderen wichtigen Sprache ohne externe Abhängigkeiten geparst. JSON entstand als Teilmenge der JavaScript-Objekt-Literal-Syntax — Douglas Crockford formalisierte es in den frühen 2000er Jahren — hat diese Herkunft aber längst überwachsen. Heute ist es die universelle Verkehrssprache für REST-APIs, GraphQL-Antworten, Konfigurationsdateien (package.json, tsconfig.json, .eslintrc), NoSQL-Dokumentspeicher (MongoDB, Firestore, DynamoDB) und Inter-Service-Kommunikation in Microservice-Architekturen.
JSONs Datenmodell ist bewusst minimal: Genau sechs Werttypen sind definiert. Primitive Typen: String (Unicode, doppelt angebracht), Zahl (IEEE-754-Double-Precision-Float, keine Integer/Float-Unterscheidung in der Spezifikation), Boolean (true oder false) und null. Strukturelle Typen: Objekt (eine ungeordnete Menge von null oder mehr Schlüssel-Wert-Paaren, bei denen Schlüssel Strings sein müssen) und Array (eine geordnete Folge von Werten). Werte können beliebig tief verschachtelt werden. Diese Einfachheit ist sowohl eine Stärke (jedes System kann JSON ohne Ambiguität parsen) als auch eine Einschränkung: JSON hat nativ keinen Datumstyp, keinen Binärtyp, keine Unterscheidung zwischen Integer und Float, keinen undefined-Wert, keine Kommentare und keine zirkulären Referenzen — alles häufige Überraschungen für Entwickler, die von ausdrucksstärkeren Formaten kommen.
Trotz JSONs konzeptioneller Einfachheit ist ungültiges JSON eine der häufigsten Ursachen für stille Fehler und kryptische Fehlermeldungen in der realen Entwicklung. Die fünf häufigsten JSON-Syntaxfehler sind: (1) Nachfolgendes Komma nach dem letzten Element in einem Objekt oder Array ({"a": 1,} — in RFC 8259 verboten, aber in JSONC/JSON5 erlaubt); (2) einfach angebrachte Strings statt doppelt angebrachter ('wert' statt "wert"); (3) unangebrachte Schlüssel ({schluessel: wert} statt {"schluessel": wert}); (4) fehlendes Komma zwischen Elementen; und (5) Kommentare (// oder /* */, die kein Teil von Standard-JSON sind). Ein JSON-Formatter und -Validator findet diese Fehler sofort — bevor sie sich als 500-Fehler in der Produktion oder als SyntaxError in der CI-Pipeline manifestieren.
So verwenden Sie diesen JSON Formatter
Unser JSON Formatter bietet drei Ausgabemodi: eine interaktive Baumansicht, formatierten (schön gedruckten) Output und minimierten Output.
- Einfügen oder Hochladen — Fügen Sie Ihren JSON-String in den Eingabebereich ein, oder laden Sie eine .json-Datei von Ihrem Gerät hoch. Das Tool akzeptiert jeden gültigen JSON-Wert — nicht nur Objekte; ein oberflächliches Array, String oder eine Zahl ist gemäß RFC 8259 ebenfalls gültiges JSON.
- Validieren & Formatieren — Klicken Sie auf die Schaltfläche oder drücken Sie Strg+Enter. Bei gültigem JSON erscheint eine grüne Bestätigung und Baumansicht, formatierter Output sowie minifizierter Output werden gleichzeitig generiert. Enthält das JSON einen Syntaxfehler, enthält die Fehlermeldung die Position (Zeile und Zeichenoffset), an der das Parsen fehlschlug.
- Ansichten wechseln — Verwenden Sie die Tabs „Baum / Formatiert / Minifiziert", um zwischen einer interaktiven kollabierbaren Baumansicht (ideal zum Erkunden unbekannter API-Antwortstrukturen), schön gedrucktem JSON mit 2-Leerzeichen-Einrückung (ideal für Dokumentation und Code-Reviews) und einer kompakten einzeiligen minimierten Version (ideal für Produktions-API-Bodies und Größenmessung) umzuschalten.
- Output kopieren — Klicken Sie auf „Kopieren", um die Ausgabe der aktuellen Ansicht in Ihre Zwischenablage zu kopieren. Das Kopieren wird sofort bestätigt, sodass Sie direkt in Ihren Editor, API-Client (Postman, Insomnia) oder Ihre Dokumentation einfügen können.
Alles läuft client-seitig in Ihrem Browser mithilfe von JavaScripts nativen JSON.parse()- und JSON.stringify()-APIs. Ihre JSON-Daten werden nie auf einen Server hochgeladen, nie gespeichert und nie übertragen — vollständig DSGVO-konform für die Verarbeitung sensibler API-Antworten, Datenbankexporte und Konfigurationsdateien mit Zugangsdaten oder personenbezogenen Daten. Kostenlose Nutzer können bis zu 100 KB verarbeiten; Pro-Nutzer haben kein Limit.
Wie es funktioniert
Beim Klick auf „Validieren & Formatieren" übergibt der Browser Ihren JSON-String an JSON.parse() — den nativen JavaScript-JSON-Parser der V8-, SpiderMonkey- oder JavaScriptCore-Engine. Dieser Parser validiert die Syntax streng nach RFC 8259 und konvertiert bei Erfolg den JSON-Text in einen live JavaScript-Objektgraphen. Jeder Syntaxfehler führt dazu, dass JSON.parse() einen SyntaxError mit einer das Problem beschreibenden Meldung wirft, den unser Tool extrahiert und mit der Fehlerposition anzeigt.
Für die interaktive Baumansicht traversiert unser React-basierter Renderer das geparste JavaScript-Objekt rekursiv. Jedes Schlüssel-Wert-Paar wird als kollabierbare Komponente mit typspezifischer Farbkodierung gerendert: Strings erscheinen in Grün (der häufigste Typ in API-Antworten), Zahlen in Blau (leicht von als String kodierten Zahlen zu unterscheiden), Booleans in Bernstein (true/false auf einen Blick) und null-Werte in Rosa (sofort als fehlende Werte erkennbar). Objekt- und Array-Knoten zeigen ihre Kindanzahl in einem Badge, wenn sie eingeklappt sind.
Formatierter Output wird durch JSON.stringify(data, null, 2) erzeugt, das das geparste JavaScript-Objekt mit 2-Leerzeichen-Einrückung pro Verschachtelungsebene zurück in JSON-Text serialisiert. Minifizierter Output verwendet JSON.stringify(data) ohne das Einrückungsargument — das entfernt alle Leerzeichen zwischen Tokens und reduziert die Dateigröße typischerweise um 20–40 % im Vergleich zum formatierten Output, abhängig vom ursprünglichen Leerraumanteil. Beide Outputs erhalten die exakten Datenwerte, Schlüsselreihenfolge (wie geparst) und den Unicode-Inhalt des ursprünglichen JSON.
Anwendungsfälle
REST-API-Antworten debuggen
Kopieren Sie eine rohe JSON-Antwort aus den Browser-DevTools (Netzwerk-Tab → Antwort), Postman, Insomnia oder der curl --silent-Ausgabe und fügen Sie sie in unseren Formatter ein. Die Baumansicht ermöglicht die Navigation durch tief verschachtelte Strukturen — nützlich beim Erkunden paginierter API-Antworten mit eingebetteten Metadaten, Fehlerobjekten mit verschachtelten Validierungsdetails oder großen GraphQL-Abfrageergebnissen. Klappen Sie oberste Arrays ein, um Elemente zu zählen, und erweitern Sie dann einzelne Elemente, um ihr Schema zu inspizieren.
Konfigurationsdateien validieren
package.json (Node.js-Projektmanifest), tsconfig.json (TypeScript-Compiler-Optionen), .eslintrc.json (ESLint-Regeln), .prettierrc (Prettier-Konfiguration), launch.json (VS-Code-Debugger) und devcontainer.json sind allesamt JSON-Dateien, bei denen ein einzelnes falsch platziertes Komma oder eine fehlende Klammer zu kryptischen Tool-Fehlern führt. Unser Validator findet Syntaxfehler sofort, meldet die genaue Position und formatiert die Datei für die Lesbarkeit — alles bevor Sie die Änderung committen.
Produktions-API-Payloads minifizieren
Beim Aufbau von REST- oder GraphQL-APIs, die Mobile-Clients bedienen, zählt jedes Byte der Antwortgröße für Latenz und Datentarife. Der Minifiziert-Tab zeigt die einzeilige Version Ihres JSON mit entferntem nicht-semantischem Leerraumam. Messen Sie die formatierte vs. minifizierte Größe, um die Einsparungen zu verstehen — für tief verschachtelte API-Antworten mit vielen String-Schlüsseln spart Minifizierung typischerweise 20–40 %. Der minifizierte Output kann direkt in API-Response-Fixture-Dateien oder Netzwerk-Mocking-Bibliotheken eingefügt werden.
NoSQL-Dokumente und Schema-Erkundung
MongoDB-Dokumente, DynamoDB-Items, Firestore-Dokumente und Elasticsearch-_source-Objekte sind allesamt JSON. Wenn sie über mongoexport, die AWS CLI oder ein Datenbank-Admin-Tool exportiert werden, kommen sie oft als minifizierte einzeilige JSON-Strings an. Unsere Baumansicht transformiert jedes einzeilige JSON in eine vollständig navigierbare Hierarchie — ideal zum Verstehen der Struktur einer unbekannten Collection, Erkunden verschachtelter Subdokumente oder Verifizieren, dass ein Datenmigrationsskript die erwartete Ausgabe erzeugt hat.
Beispiel: JSON-Validierung und -Formatierung
Hier ist eine typische JSON-Antwort, die einen API-Validierungsfehler darstellt — wie Sie ihn von einem XRechnung-Verarbeitungsendpunkt oder einer REST-API mit serverseitiger Validierung erhalten könnten. Fügen Sie ihn ein und klicken Sie auf Validieren, um alle drei Ansichtsmodi zu sehen:
{
"status": "error",
"code": 422,
"message": "Validation failed",
"errors": [
{
"field": "invoice_date",
"rule": "required",
"message": "Rechnungsdatum ist erforderlich"
},
{
"field": "seller_vat_id",
"rule": "format",
"message": "USt-IdNr. muss mit DE beginnen"
}
],
"timestamp": 1700000000,
"request_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}Dieses Beispiel zeigt ein JSON-Objekt mit einem verschachtelten Array aus Fehlerobjekten, einem Unix-Timestamp-Integer und einem UUID-String. Beachten Sie, dass timestamp (Integer) und request_id (String) verschiedene Typen sind — die Baumansicht farbkodiert diese sofort.
Tipps & Einschränkungen
Tipps
- Verwenden Sie Strg+Enter für schnelles Validieren ohne Mausbewegung — besonders nützlich beim engen Iterieren eines JSON-Payloads.
- Die Baumansicht farbkodiert alle sechs JSON-Datentypen: Strings (grün), Zahlen (blau), Booleans (bernstein), null (rosa), Objekte (mit Schlüsselanzahl beschriftet) und Arrays (mit Elementanzahl beschriftet). Typen-Fehlanpassungen sind dadurch sofort erkennbar — z. B. ein Datum, das als Zahl statt als String gespeichert ist.
- Minifiziertes JSON kann direkt in API-Request-Bodies in Postman, Insomnia oder curl -d '...'-Befehlen eingefügt werden. Es kann auch als Einzeiler in Datenbank-TEXT-Spalten gespeichert oder als kompaktes Fixture in Unit-Tests verwendet werden.
- Die Baumansicht expandiert standardmäßig bis Tiefe 2 und zeigt oberste Schlüssel und ihre unmittelbaren Kinder. Klicken Sie auf Objekt- oder Array-Knoten, um sie einzuklappen — nützlich, wenn eine Antwort viele oberste Schlüssel hat und Sie sich auf einen einzelnen Abschnitt konzentrieren möchten.
Einschränkungen
- Standard-JSON (RFC 8259) unterstützt keine Kommentare (// oder /* */), nachfolgende Kommas oder unangebrachte Schlüssel. Wenn Ihre Eingabe diese enthält, handelt es sich um JSONC (JSON with Comments, von VS Code verwendet) oder JSON5 — beide erfordern dedizierte Parser. Entfernen Sie Kommentare und nachfolgende Kommas vor der Validierung.
- Kostenlose Nutzer können maximal 100 KB verarbeiten. Ein Pro-Konto ist für größere Dateien erforderlich. Eine 100-KB-JSON-Datei entspricht etwa 1.000–3.000 typischen API-Antwortobjekten — für nahezu alle Debugging-Anwendungsfälle ausreichend.
- Sehr tief verschachteltes JSON (>50 Ebenen) kann das Baumrendering verlangsamen, da jede Ebene ein React-Komponenten-Teilbaum ist. In der Praxis überschreiten reale API-Antworten selten 10–15 Verschachtelungsebenen.
- JSON-Zahlen sind auf den Bereich IEEE-754-Double-Precision-Float begrenzt. Integer größer als 2^53 - 1 (9.007.199.254.740.991) können in JSON nicht exakt dargestellt werden und werden möglicherweise still gerundet. Für große Integer (Datenbank-IDs, Finanzbeträge in Kleinsteinheiten) verwenden Sie JSON-Strings statt Zahlen.
Häufig gestellte Fragen
Kann ich JSON mit Kommentaren (JSONC) validieren?
Standard-JSON (RFC 8259) unterstützt keine Kommentare. Wenn Ihr JSON //-Einzeiler- oder /* */-Mehrzeiler-Kommentare enthält, ist es kein gültiges JSON — es ist JSONC oder JSON5. VS-Code-Konfigurationsdateien (settings.json, launch.json, tsconfig.json) verwenden JSONC. Vor der Validierung müssen Kommentare manuell entfernt oder ein JSONC-bewusster Parser verwendet werden. Unser Tool meldet die genaue Position des Kommentarzeichens als Syntaxfehler, sodass es leicht zu finden und zu entfernen ist.
Was ist der Unterschied zwischen formatiertem und minifiziertem JSON?
Formatiertes (schön gedrucktes) JSON verwendet 2-Leerzeichen-Einrückung und Zeilenumbrüche nach jedem Schlüssel-Wert-Paar und Array-Element, was die Struktur sofort menschenlesbar macht. Minifiziertes JSON entfernt alle Leerzeichen zwischen Tokens — keine Leerzeichen, keine Zeilenumbrüche — und erzeugt die kompaktestmögliche Darstellung. Der Dateninhalt und die Werttypen sind in beiden Versionen identisch; nur der Leerraum unterscheidet sich. Minifizierung reduziert JSON-Größe typischerweise um 20–40 %. Formatiertes JSON für Code-Reviews, Dokumentation und Debugging verwenden; minifiziertes JSON für Produktions-API-Antworten und Netzwerkübertragungen.
Werden meine JSON-Daten zur Verarbeitung an einen Server gesendet?
Nein. Das gesamte JSON-Parsen, Formatieren, Baumrendering und Minifizieren läuft vollständig in Ihrem Browser mithilfe der nativen JSON.parse()- und JSON.stringify()-Methoden der JavaScript-Engine. Ihre JSON-Daten verlassen Ihr Gerät niemals, werden auf keinem Server gespeichert und nie für Analytics oder Training verwendet. Dies macht docutools.pro sicher für das Formatieren von JSON mit API-Zugangsdaten, Authentifizierungs-Tokens, personenbezogenen Daten, medizinischen Daten oder anderen sensiblen Inhalten.
Was verursacht 'Unexpected token'- und 'Unexpected end of JSON input'-Fehler?
Die fünf häufigsten JSON-Syntaxfehler: (1) Nachfolgendes Komma — ein Komma nach dem letzten Element in einem Objekt oder Array: {"a": 1,} oder [1, 2,]. In JavaScript und JSONC erlaubt, aber in RFC-8259-JSON verboten. (2) Einfach angebrachte Strings — JSON erfordert doppelte Anführungszeichen: 'wert' muss "wert" sein. (3) Unangebrachte Eigenschaftsnamen — JavaScript erlaubt {schluessel: wert}, aber JSON erfordert {"schluessel": wert}. (4) Fehlendes Komma zwischen Elementen — {"a": 1 "b": 2} fehlt ein Komma. (5) Kommentare — // oder /* */ im JSON-Quelltext. Unser Formatter meldet den genauen Zeichenoffset, an dem das Parsen fehlschlug.
Wie groß kann eine JSON-Datei maximal sein?
Kostenlose Nutzer können JSON-Dateien bis 100 KB verarbeiten — ausreichend für die überwiegende Mehrheit der Debugging-Aufgaben. Eine typische REST-API-Antwort ist 1–10 KB; eine große paginierte Antwort mit 100 Elementen kann 50–80 KB sein. Pro-Abonnenten können Dateien beliebiger Größe verarbeiten, einschließlich großer Datenbankexporte (mongoexport, pg_dump JSON-Format), vollständiger GraphQL-Schema-Introspektions-JSON (oft 500 KB–2 MB) und mehrstufiger Event-Logs.
Kann JSON alle Datentypen darstellen, mit denen ich in meiner Sprache arbeite?
JSONs Typsystem ist absichtlich minimal: String, Zahl (IEEE-754-Float), Boolean, null, Objekt, Array. Typen, die häufig benötigt, aber nativ nicht darstellbar sind: Daten (als ISO-8601-String: "2025-04-15T14:30:00Z"), Binärdaten (als Base64-String), Integer vs. Float (JSON hat einen einzelnen Zahlentyp), undefined (nicht darstellbar — lassen Sie den Schlüssel weg), Unendlich/NaN (kein gültiger JSON-Zahlenwert — null oder einen speziellen String-Sentinel verwenden). Diese Einschränkungen sind gewollt, um JSON universell parsbar ohne sprachspezifisches Typ-Wissen zu halten.
Was ist JSON Schema und wie unterscheidet es sich von der JSON-Validierung?
JSON-Syntaxvalidierung (was unser Tool tut) prüft, ob ein String nach RFC 8259 parsbar ist — korrekte Klammern, angebrachte Schlüssel, gültige Werttypen, keine nachfolgenden Kommas. JSON Schema (jsonschema.org, verwendet in OpenAPI, AsyncAPI) ist ein separates Vokabular zur Beschreibung der erwarteten Struktur, Pflichtfelder, Wertbeschränkungen (minimum, maximum, pattern, enum) und verschachtelten Objektformen. Ein JSON-Dokument kann syntaktisch gültig, aber strukturell ungültig (fehlende Pflichtfelder, falsche Typen) gemäß einem Schema sein. Client-seitige Schema-Validierung typischerweise mit Ajv (JavaScript/Node.js) oder jsonschema (Python). OpenAPI Generator nutzt JSON Schema, um typsichere API-Client-Code zu generieren.
Ist JSON besser als XML für den API-Datenaustausch?
Für die meisten REST-APIs und Web-Browser-Anwendungen ist JSON die pragmatische Wahl: kompakter, direkt auf JavaScript-Objekte abbildbar und universell parsbar ohne Namespace- oder Schema-Kenntnisse. XML hat jedoch technische Vorteile in bestimmten Kontexten: Namespaces (entscheidend für Dokumentstandards wie XRechnung, die mehrere Vokabulare kombinieren), gemischte Inhalte (Text gemischt mit Markup, wie in Textverarbeitungsprogrammen), formale Schema-Validierung (XSD ist in manchen Bereichen ausdrucksstärker als JSON Schema) und Transformation (XSLT). Deutsche E-Rechnungen (XRechnung, ZUGFeRD) verwenden XML genau wegen dieser Stärken.
Wie behandle ich Sonderzeichen und Unicode in JSON-Strings?
JSON-Strings müssen doppelte Anführungszeichen verwenden und sechs Zeichen mit Backslash-Sequenzen escapen: \" (doppeltes Anführungszeichen), \\ (Backslash), \/ (Schrägstrich — optional, aber erlaubt), \b (Rückschritt), \f (Seitenvorschub), \n (Zeilenumbruch), \r (Wagenrücklauf), \t (Tabulator). Unicode-Zeichen außerhalb von ASCII können direkt in UTF-8-kodiertem JSON eingebettet werden (empfohlener Ansatz — z. B. deutsches ä direkt als ä) oder als \uXXXX Vier-Hex-Ziffern-Sequenzen escaped werden (z. B. \u00e4 für ä). Unser Formatter behält direkte Unicode-Zeichen bei; wenn Ihr Zielsystem nur ASCII-JSON erfordert, verwenden Sie die ASCII-Escape-Option Ihrer Bibliothek.
Was ist der Unterschied zwischen JSON und JSONP?
JSON ist ein Datenformat. JSONP (JSON with Padding) ist eine historische Web-Technik für ursprungsübergreifende Datenanfragen, bevor CORS (Cross-Origin Resource Sharing) standardisiert wurde. Bei JSONP verpackt ein Server einen JSON-Payload in einen Funktionsaufruf: callback({"daten": ...}). Der Browser lädt ihn als <script>-Tag, das die benannte Funktion mit den JSON-Daten aufruft. JSONP ist kein gültiges JSON (es ist ein JavaScript-Ausdruck), hat erhebliche Sicherheitsrisiken (führt beliebiges JavaScript aus) und ist veraltet — moderne Anwendungen verwenden CORS-fähige APIs. Unser JSON-Validator lehnt JSONP ab, weil der Wrapper-Funktionsaufruf keine gültige JSON-Syntax ist.