JSON-Validator

Fügen Sie ein beliebiges JSON-Dokument ein und sehen Sie, ob es gemäß RFC 8259 sauber geparst wird. Ungültige Eingaben kommen mit dem genauen Problem zurück, nachfolgendes Komma nach dem letzten Array-Element, nicht zitierter Schlüssel, nicht beendeter String, einfache Anführungszeichen, wo JSON doppelte verlangt, fehlerhafte Escape-Sequenzen, plus die Zeile und Spalte, an der der Parser aufgegeben hat. Nützlich beim Debuggen einer API-Antwort, einer Konfigurationsdatei, einer package.json, die ein Teamkollege bearbeitet hat, oder der Ausgabe eines Code-Generators.

Wie die JSON-Validierung funktioniert

  1. 1

    Fügen Sie Ihr JSON ein

    Legen Sie eine Nutzlast, eine Konfigurationsdatei oder eine API-Antwort ein. Leerzeichen sind in Ordnung; Tabs und Kommentare sind es nicht (reines JSON hat keine Kommentare).

  2. 2

    Mit einem strengen RFC 8259-Parser parsen

    Der Validator lehnt alles ab, was die Spezifikation verbietet: nachfolgende Kommas, nicht zitierte Schlüssel, einfache Anführungszeichen, `undefined`, hexadezimale Zahlen.

  3. 3

    Lesen Sie den Fehler

    Wenn es fehlschlägt, erhalten Sie die Nachricht des Parsers plus einen ungefähren Standort, genug, um direkt zum Zeichen zu navigieren.

  4. 4

    Beheben und erneut validieren

    Korrigieren Sie das Problem, fügen Sie erneut ein und bestätigen Sie, dass das Dokument gültig ist, bevor Sie es speichern oder senden.

Was strenges JSON erlaubt, und was nicht

Es gibt viele “fast JSON”-Formate (JSON5, JSONC, HJSON, YAML-ähnliche Hybride). Die JSON-Spezifikation selbst ist klein und streng; dieser Validator sagt Ihnen, ob Ihr Dokument einen strengen Parser übersteht, was die meisten nachgelagerten Systeme tatsächlich ausführen.

Regeln, die die meisten Menschen erwischen

Regel Gültig Ungültig
Schlüssel müssen doppelt in Anführungszeichen stehen {"a": 1} {a: 1}
Strings verwenden nur doppelte Anführungszeichen "hello" 'hello'
Keine nachfolgenden Kommas [1, 2, 3] [1, 2, 3,]
Keine Kommentare (keine) // Kommentar oder /* */
Zahlen: kein führendes +, keine .5 0.5 +1, .5
Nur reservierte Literale true, false, null undefined, NaN
UTF-8-Codierung Unicode-Strings Ungültige Bytefolgen

Häufige Fehler und was sie bedeuten

  • “Unerwartetes Token }, Sie haben ein nachfolgendes Komma vor der schließenden Klammer.
  • “Erwarteter Eigenschaftsname”, Schlüssel ist nicht in Anführungszeichen oder Sie haben die Anführungszeichen um den öffnenden Schlüssel vergessen.
  • “Unerwartetes Ende der Eingabe”, eine öffnende { oder [ ist nicht geschlossen; zählen Sie die Klammern.
  • “Schlechtes Steuerzeichen”, ein Tabulator, Zeilenumbruch oder anderes Steuerbyte innerhalb eines String-Literals. Entkommen Sie ihnen als \t, \n usw.
  • “Doppelter Schlüssel”, tatsächlich kein Fehler gemäß JSON-Spezifikation (die Spezifikation sagt, dass sie eindeutig sein sollten), aber viele Validatoren warnen. Der Validator kennzeichnet es als Hinweis, nicht als harte Fehlermeldung.

Wenn Sie lockerere Formate benötigen

  • JSON5 erlaubt nachfolgende Kommas, Kommentare und einfache Anführungszeichen. Verwenden Sie einen JSON5-Parser, wenn das Ihr Zielformat ist.
  • JSONC (JSON mit Kommentaren) ist das, was die VS Code-Einstellungen verwenden. Entfernen Sie Kommentare vor der strengen Analyse.
  • YAML ist ein anderes Format; gehen Sie nicht davon aus, dass es “nur eingerücktes JSON” ist.

Tipps

  • Validieren Sie vor dem Speichern. Ein Tippfehler in einer package.json oder einer CI-Konfiguration bricht den gesamten Build, bis jemand es bemerkt.
  • Schönformatieren nach der Validierung, um Überprüfungsdifferenzen lesbar zu machen. Eine einzeilige JSON-Datei ist gültig, aber miserabel zu überprüfen.
  • Für große Nutzlasten streamen Sie die Validierung (jq in der Befehlszeile zum Beispiel). Die Analyse im Browser hat Schwierigkeiten, wenn es über ein paar MB hinausgeht.

Häufig gestellte Fragen

Dieses Tool überprüft nur die syntaktische Gültigkeit, ist es gut geformtes JSON? Für strukturelle Regeln (erforderliche Felder, Enum-Werte, String-Längen) verwenden Sie einen JSON-Schema-Validator. Die beiden Schritte ergänzen sich: Es hat keinen Sinn, eine Schema-Validierung auf ein Dokument auszuführen, das nicht gültiges JSON ist.

Weil standardmäßiges JSON keine Kommentare hat. // und /* */ sind eine gesunde Erweiterung (JSONC, JSON5), aber reines JSON lehnt sie ab. Entfernen Sie Kommentare, bevor Sie an einen strengen Verbraucher senden, oder verwenden Sie JSON5 in Ihrem gesamten Stack.

Ungültig in striktem JSON. Die Spezifikation erlaubt nur endliche Zahlen. Serialisieren Sie sie als Strings ("NaN", "Infinity") oder als null, je nachdem, wie Ihr Verbraucher mit fehlenden Daten umgeht.

Nein, die Validierung erfolgt in Ihrem Browser, sodass die Nutzlast, die Sie einfügen, die Seite nie verlässt. Sicher für sensible Konfigurationsdateien und API-Antworten mit Anmeldeinformationen.

Verwandte Tools

Tool in anderen Sprachen verfügbar