JSON formatteren, valideren en minifiëren
Plak je JSON: de tool controleert hem meteen, wijst de exacte plek van de fout aan met uitleg en levert het resultaat overzichtelijk of geminificeerd, klaar om te kopiëren. Er wordt niets naar een server gestuurd.
Zo wordt het berekend
Wat de tool controleert
De basis is RFC 8259, de internetstandaard voor JSON (gelijkwaardig aan ECMA-404). De tool leest je tekst teken voor teken met een eigen parser en stopt bij de eerste overtreding. De melding geeft regel en kolom, markeert de plek met een ^ en legt uit wat er mis is – in elke browser identiek, want de ingebouwde meldingen van JSON.parse verschillen per browser en zijn vaak weinig zeggend (“Unexpected token”).
De meest voorkomende JSON-fouten
- Komma na het laatste item:
{"a": 1,}– toegestaan in JavaScript, ongeldig in JSON. - Enkele aanhalingstekens of sleutels zonder aanhalingstekens:
{'a': 1},{a: 1}– correct is{"a": 1}. - Commentaar (
//,/* */) bestaat niet in JSON. - JavaScript- of Python-waarden:
undefined,NaN,Infinity,True,None– alleentrue,falseennullzijn toegestaan. - Getallen: geen voorloopnul (
012), geen+1, geen.5of5., geen hexadecimaal (0x1F). Het decimaalteken is altijd een punt, nooit een komma. - Strings: een regeleinde of tab schrijf je als
\nof\t, een losse backslash als\\(typisch bij Windows-paden). - Onzichtbare tekens: een harde spatie (U+00A0), gekopieerd uit Word of een webpagina, telt in JSON niet als geldige witruimte.
Opmaken, minifiëren, sorteren
De uitvoer wordt opnieuw opgebouwd uit de gevalideerde inhoud: Opmaken springt elk niveau in met 2 of 4 spaties of een tab, Minifiëren verwijdert alle overbodige witruimte (kleinste bestand). Getallen en strings blijven exact zoals geschreven – anders dan bij JSON.parse + JSON.stringify wordt 1.0 niet 1 en wordt 12345678901234567890 niet afgerond. Sorteren ordent sleutels op Unicode-codepunt, zoals in het JSON Canonicalization Scheme (RFC 8785): hoofdletters vóór kleine letters, letters met een accent (é, ë, ü…) na beide.
Waarschuwingen, geen fouten
Dubbele sleutels in hetzelfde object zijn volgens RFC 8259 niet verboden, maar wel onbetrouwbaar: de meeste programma’s houden alleen de laatste waarde aan. Een byte order mark aan het begin wordt door sommige lezers genegeerd – deze tool doet dat ook en meldt het.
Grenzen
De tool controleert de syntax, niet de betekenis: of verplichte velden ontbreken of typen kloppen, is het werk van een JSON Schema. Kolommen tellen Unicode-tekens vanaf 1 (een tab = 1 teken); een editor met een tabbreedte van 4 toont een hoger kolomnummer. Invoer is beperkt tot 5 miljoen tekens en 1.000 niveaus nesting.
Veelgestelde vragen
Wordt mijn JSON verstuurd of opgeslagen?
Nee. Valideren en formatteren gebeurt volledig in je browser. De tekst komt niet in de adresbalk terecht en wordt niet opgeslagen – alleen de gekozen opties (uitvoer, inspringing, sortering) staan in de link.
Waarom zijn commentaar en een komma na het laatste item niet toegestaan?
JSON is bewust minimaal, zodat elke programmeertaal het op dezelfde manier leest. Commentaar en een afsluitende komma horen bij uitbreidingen zoals JSON5 of JSONC (gebruikt door bijvoorbeeld VS Code-instellingen) – als puur JSON zijn zulke bestanden ongeldig.
Mijn JSON is geldig, maar het programma weigert het toch – waarom?
Meestal komt de inhoud niet overeen met wat het programma verwacht: een verplicht veld ontbreekt, er staat een getal waar een string hoort te staan, of de structuur wijkt af. Dat staat beschreven in een JSON Schema of de API-documentatie. Kijk ook naar de waarschuwing over dubbele sleutels.
Komen regel en kolom overeen met mijn editor?
Regels altijd. Kolommen tellen tekens vanaf 1; een tab telt als één teken, een emoji ook. Een editor die tabs als 4 kolommen toont, geeft dus een hoger getal. “Ga naar fout” zet de cursor precies op de juiste plek.
Hoe vind ik het probleem na “onverwacht einde”?
Bijna altijd ontbreekt een sluitende } of ] of een aanhalingsteken. De melding noemt de regel van het haakje dat nooit gesloten wordt – kijk eerst naar het einde van dat blok.
Bronnen en wettelijke basis
- STD 90, §§ 2–9: IETF RFC 8259 – The JavaScript Object Notation (JSON) Data Interchange Format
- ECMA-404 – The JSON Data Interchange Syntax, 2nd edition
- § 3.2.3: IETF RFC 8785 – JSON Canonicalization Scheme (Sortierung der Schlüssel)
- JSONTestSuite (Nicolas Seriot) – Testfälle für JSON-Parser
Bijgewerkt op:
Vergelijkbare tools
- XML- en CSV-validator onlineControleer of XML welgevormd is en valideer CSV volgens RFC 4180: fouten met regel en kolom, gedetecteerd scheidingsteken, tabelvoorbeeld. Draait lokaal.
- Regex testerTest JavaScript reguliere expressies live: matches gemarkeerd, capture groups in een tabel, elk onderdeel uitgelegd. Gratis, niets wordt geüpload.
- Base64 encoderen en decoderenBase64 en Base64url encoderen en decoderen met correcte UTF-8, plus URL encode/decode (percent-encoding). Duidelijke foutmeldingen, lokaal in je browser.
- Hash generator: SHA-256, SHA-512, SHA-1, MD5Bereken SHA-256-, SHA-384-, SHA-512-, SHA-1- en MD5-hashes van tekst of een bestand en controleer een checksum – lokaal in je browser, geen upload, gratis.
- UUID generator: UUID v4 en v7 maken en controlerenMaak online UUID’s: versie 4 (willekeurig) of versie 7 (op tijd gesorteerd), tot 1.000 tegelijk. Controleer een UUID en lees versie, variant en tijdstempel.
- Unix-tijdstempelconverterZet een Unix-tijdstempel om in een datum en omgekeerd: seconden, milliseconden, micro- en nanoseconden herkend; UTC, lokale tijd, ISO 8601 en meer.