JSON-validator

Klistra in valfritt JSON-dokument och se om det tolkas korrekt enligt RFC 8259. Ogiltig indata kommer tillbaka med det exakta problemet, avslutande kommatecken efter sista arrayelementet, nyckel utan citattecken, oavslutad sträng, enkla citattecken där JSON kräver dubbla, felaktiga escape-sekvenser, plus raden och kolumnen där parsern gav upp. Användbart när du felsöker ett API-svar, en konfigurationsfil, en package.json som en kollega handredigerat eller utdata från en kodgenerator.

Så fungerar JSON-validering

  1. 1

    Klistra in din JSON

    Släpp in en payload, en konfigurationsfil eller ett API-svar. Blanksteg går bra; tabbar och kommentarer gör det inte (ren JSON har inga kommentarer).

  2. 2

    Tolka med en strikt RFC 8259-parser

    Validatorn avvisar allt som specifikationen förbjuder: avslutande kommatecken, nycklar utan citattecken, enkla citattecken, `undefined`, hex-tal.

  3. 3

    Läs felet

    Om det misslyckas får du parserns meddelande plus en ungefärlig position: tillräckligt för att navigera direkt till tecknet.

  4. 4

    Åtgärda och validera igen

    Rätta till problemet, klistra in på nytt och bekräfta att dokumentet är giltigt innan du committar eller skickar.

Vad strikt JSON tillåter, och vad det inte gör

Det florerar en hel del “nästan-JSON”-format (JSON5, JSONC, HJSON, YAML-liknande hybrider). Själva JSON-specifikationen är liten och strikt; denna validator talar om för dig om ditt dokument överlever en strikt parser, vilket är vad de flesta nedströmssystem faktiskt kör.

Regler som de flesta snubblar på

Regel Giltigt Ogiltigt
Nycklar måste vara strängar med dubbla citattecken {"a": 1} {a: 1}
Strängar använder bara dubbla citattecken "hello" 'hello'
Inga avslutande kommatecken [1, 2, 3] [1, 2, 3,]
Inga kommentarer (inga) // comment eller /* */
Tal: inget inledande +, inget .5 0.5 +1, .5
Endast reserverade literaler true, false, null undefined, NaN
UTF-8-kodning Unicode-strängar Ogiltiga bytesekvenser

Vanliga fel och vad de betyder

  • “Unexpected token }, du har ett avslutande kommatecken före den stängande klammern.
  • “Expected property name”, nyckeln saknar citattecken eller så glömde du citattecknen runt den inledande nyckeln.
  • “Unexpected end of input”, en inledande { eller [ är inte stängd; räkna klamrarna.
  • “Bad control character”, en tabb, radbrytning eller annan styrbyte inuti en strängliteral. Escapa dem som \t, \n, osv.
  • “Duplicate key”, egentligen inte ett fel enligt JSON-specifikationen (specifikationen säger BÖR vara unika), men många validatorer varnar. Validatorn flaggar det som en notis, inte ett hårt fel.

Om du behöver mindre strikta format

  • JSON5 tillåter avslutande kommatecken, kommentarer och enkla citattecken. Använd en JSON5-parser om det är ditt målformat.
  • JSONC (JSON med kommentarer) är vad VS Codes inställningar använder. Ta bort kommentarer före strikt tolkning.
  • YAML är ett annat format; anta inte att det är “bara indenterad JSON”.

Tips

  • Validera innan du committar. Ett stavfel i en package.json eller en CI-konfiguration bryter hela bygget tills någon märker det.
  • Snyggformatera efter validering för att göra granskningsdiffar läsbara. En JSON-fil på en rad är giltig men eländig att granska.
  • För stora payloads, strömvalidera (jq på kommandoraden, till exempel). Tolkning i webbläsaren kämpar förbi några MB.

Vanliga frågor

Det här verktyget kontrollerar endast syntaktisk giltighet, är det välformad JSON? För strukturella regler (obligatoriska fält, enum-värden, stränglängder) använder du en JSON Schema-validator. De två stegen kompletterar varandra: ingen idé att köra Schema-validering på ett dokument som inte ens är giltig JSON till att börja med.

Eftersom standard-JSON inte har några kommentarer. // och /* */ är en förnuftig utökning (JSONC, JSON5) men ren JSON avvisar dem. Ta bort kommentarer innan du skickar till en strikt konsument, eller inför JSON5 i hela din stack.

Ogiltiga i strikt JSON. Specifikationen tillåter endast ändliga tal. Serialisera dem som strängar ("NaN", "Infinity") eller som null, beroende på hur din konsument hanterar saknad data.

Nej, valideringen körs i din webbläsare, så den payload du klistrar in lämnar aldrig sidan. Säkert för känsliga konfigurationsfiler och API-svar med autentiseringsuppgifter.

Relaterade verktyg

Verktyget finns på andra språk