Zum Inhalt springen

JSON prüfen

Nicht nur gültig oder ungültig – sondern Zeile, Spalte, Zeichen und was Sie dagegen tun können. Es wird nichts gespeichert; die Prüfung läuft direkt hier.

  • Nie gespeichert
  • Keine Warteschlange, kein Warten
  • Ohne Anmeldung, ohne Wasserzeichen
Formatiert

Fügen Sie JSON ein – es wird schon während der Eingabe geprüft.

So funktioniert’s

1

JSON einfügen

Oder legen Sie die Datei ab. Sie wird dort gelesen, wo sie ist; es wird nichts irgendwohin geschickt.

2

Ergebnis lesen

Gültig, mit einer Übersicht, was darin steckt. Oder ungültig, mit genau markierter Stelle.

3

Korrigieren und neu prüfen

Bearbeiten Sie direkt im Feld, und das Ergebnis wird beim Tippen aktualisiert.

Was JSON tatsächlich verbietet

Die Grammatik von JSON ist bewusst winzig, und fast jeder Validierungsfehler ist eines von einer Handvoll Dingen, die man aus JavaScript übernimmt und die JSON nie übernommen hat. Ein nachgestelltes Komma nach dem letzten Element. Einfache Anführungszeichen statt doppelter. Schlüssel ohne Anführungszeichen. Kommentare – JSON hat keine und hatte nie welche. NaN und Infinity, gültige JavaScript-Zahlen, aber kein gültiges JSON. Und ein vorangestelltes Byte Order Mark, in jedem Editor unsichtbar, das manche Windows-Tools beim Speichern als UTF-8 hinzufügen und das ein einwandfreies Dokument schon am ersten Zeichen scheitern lässt.

Zwei Dinge sind erlaubt und machen trotzdem Ärger, weshalb „gültig“ nicht dasselbe ist wie „richtig“. Doppelte Schlüssel sind laut Spezifikation nicht verboten – und jeder Parser löst sie anders auf, die meisten nehmen den letzten, ein Dokument mit wiederholtem Schlüssel ist hier also gültig und bedeutet in verschiedenen Sprachen verschiedene Dinge. Und Zahlen haben in JSON keine festgelegte Genauigkeitsgrenze, während die meisten Parser sie als Gleitkommazahlen lesen: Eine Ganzzahl jenseits von etwa neun Billiarden wird stillschweigend gerundet, weshalb große IDs so oft als Strings übertragen werden.

Zurück bekommen Sie die genaue Zeile, Spalte und das Zeichen, an dem das Parsen abgebrochen ist, was meist nützlicher ist als die Meldung selbst. Ein Parser meldet die Stelle, an der das Dokument keinen Sinn mehr ergab, nicht die, an der der Fehler gemacht wurde – eine fehlende schließende Klammer wird am Dateiende gemeldet, ein fehlendes Komma beim Token danach. Direkt vor der gemeldeten Position nachzusehen ist die Gewohnheit, die am meisten Zeit spart.

Wohlgeformt ist nicht dasselbe wie richtig, und der Unterschied zählt. Diese Prüfung bestätigt, dass sich die Syntax parsen lässt. Ob das Dokument die Felder enthält, die Ihre API verlangt, ob ein Wert im zulässigen Bereich liegt, ob ein Datum wirklich ein Datum ist – nichts davon ist eine JSON-Frage. Das ist Schemavalidierung, dafür braucht es ein Schema, und ein Dokument kann hier makellos sein und vom Dienst, an den Sie es schicken, sofort abgelehnt werden.

Wenn Sie etwas anderes brauchen

Um Dokumente gegen ein Schema statt gegen eine Grammatik zu prüfen, ist JSON Schema der Standard und ajv die schnellste Implementierung – es sagt Ihnen, dass ein Pflichtfeld fehlt oder ein Wert außerhalb des Bereichs liegt, und das ist meist die Frage, die Sie tatsächlich haben. check-jsonschema führt dieselben Prüfungen auf der Kommandozeile und in der CI aus.

Für alles auf der Kommandozeile ist jq das Tool der Wahl: jq empty file.json validiert und gibt bei Erfolg nichts aus – genau richtig für ein Skript –, und jq . formatiert. Für Dateien, die zu groß für den Arbeitsspeicher sind, parsen jq --stream und Pythons ijson schrittweise, was keine Seite kann, die das ganze Dokument lädt.

Häufig gestellte Fragen

Wird mein JSON irgendwo gespeichert?

Nein. Es gibt keinen Serveraufruf und keine Protokollierung, und es wird nichts gespeichert. Sie können nach dem Laden der Seite die Internetverbindung trennen, und sie funktioniert weiter. Das ist hier wichtiger, als es aussieht: Was Menschen in einen Online-Formatierer einfügen, sind API-Antworten, Konfigurationsdateien und Fehlermeldungen – und die enthalten regelmäßig Tokens, Kundendaten und interne Hostnamen.

Was erfahre ich, wenn das JSON fehlerhaft ist?

Zeile, Spalte, die Zeile selbst mit einem Zirkumflex unter dem genauen Zeichen und was dort erwartet wurde. Die meisten JSON-Fehler haben einen von vier Gründen – ein nachgestelltes Komma, einfache statt doppelter Anführungszeichen, ein Schlüssel ohne Anführungszeichen oder ein echter Zeilenumbruch in einem String –, und jeder davon wird beim Namen genannt, statt als allgemeiner Syntaxfehler beschrieben zu werden.

Was gilt als gültig?

RFC 8259, streng ausgelegt. Das heißt: Schlüssel in doppelten Anführungszeichen, keine nachgestellten Kommas, keine Kommentare und keine führenden Nullen oder Hexwerte in Zahlen. Strenge ist der Sinn eines Validators: Würde er akzeptieren, was Ihr Parser ablehnt, hätte er Ihnen nichts gesagt.

Prüft es mein JSON gegen ein Schema?

Nein – hier wird die Syntax geprüft, und das ist eine andere Frage. Bei der Syntax geht es darum, ob der Text überhaupt JSON ist. Bei einem Schema darum, ob die Daten die richtigen Felder und Typen haben. Diese Seite beantwortet die erste Frage; sie sagt Ihnen, dass sich die Datei parsen lässt, und zeigt die gefundene Struktur, weiß aber nicht, wie Ihre Felder aussehen sollen.

Warum steht da „gültig“, wenn meine API es trotzdem ablehnt?

Weil gültiges JSON und das JSON, das Ihre API will, zwei verschiedene Dinge sind. Ein syntaktisch perfektes Dokument kann trotzdem ein Pflichtfeld vermissen lassen, einen String verwenden, wo eine Zahl hingehört, oder anders verschachtelt sein, als der Endpunkt erwartet. Vergleichen Sie die Strukturübersicht, die diese Seite zeigt, mit der Dokumentation der API – die Abweichung ist meist sofort zu sehen.

Werden große Zahlen richtig geprüft?

Ja, Ziffer für Ziffer – die meisten Validatoren machen sie stillschweigend kaputt. Eine JavaScript-Zahl ist ein 64-Bit-Float und kann ganze Zahlen daher nur bis 9.007.199.254.740.991 exakt darstellen. Alles, was größer ist – eine Twitter/X-Post-ID, ein Discord-Snowflake, eine Kontonummer, ein 64-Bit-Datenbankschlüssel –, verliert seine letzten Ziffern, sobald es durch `JSON.parse` läuft. Die Zahl sieht weiterhin plausibel aus, und genau das macht sie gefährlich: Aus 7205759403792793600 wird stillschweigend 7205759403792793000. Diese Seite behält die eingefügten Ziffern exakt bei und sagt Ihnen, wie viele Zahlen sie schützen musste.

Gibt es eine Größenbeschränkung?

Den verfügbaren Arbeitsspeicher, keine von uns gesetzte Grenze. Dokumente mit ein paar Megabyte werden sofort formatiert; sehr große sind dadurch begrenzt, wie viel gleichzeitig gehalten werden kann, nicht durch irgendetwas auf unserer Seite.

Gut zu wissen: Hier wird geprüft, ob das JSON wohlgeformt ist, nicht, ob es inhaltlich stimmt. Ein Dokument kann völlig gültig sein und trotzdem Felder vermissen lassen, die Ihre API erwartet – das ist Schemavalidierung, und dafür braucht es ein Schema. Was Sie hier bekommen, ist die genaue Zeile, Spalte und das Zeichen, an dem das Parsen abgebrochen ist.

Dieses Tool auf Ihrer Website einbinden

Kostenlos für jeden Blog, jede Kursseite und jeden Hilfeartikel. Fügen Sie ein einziges Snippet ein, und Ihre Besucher können das Tool direkt auf Ihrer Seite nutzen.