JSON-formatter & -validator Pro

JSON opmaken, valideren, bevragen, vergelijken en transformeren — volledig in je browser

Invoer JSON

Inspringing

Opgemaakte uitvoer

De opgemaakte uitvoer verschijnt hier

JSON-formatter, validator, JSONPath, diff & schema — onDevTools

JSON volledig in je browser opmaken, valideren, bevragen, vergelijken en transformeren. Strikte parser conform RFC 8259 plus JSONC-modus, validatie tegen JSON Schema Draft 2020-12, JSONPath conform RFC 9535, deep diff met JSON Merge Patch en transformaties voor afvlakken / ontvouwen / nulls verwijderen — geen upload, geen tracking.

Functies

  • JSON pretty-printen en minificeren met instelbare inspringing (2, 4, 8 spaties) en optionele alfabetische sortering van sleutels
  • Strikte parser conform RFC 8259 / ECMA-404 plus een tolerante JSONC-modus die // en /* */ commentaren en trailing komma's accepteert
  • Interactieve invouwbare boomweergave met fulltext-zoekfunctie, alles uit-/invouwen en per knoop de waarde of het JSON Pointer-pad kopiëren
  • JSON Schema-validator (Draft 2020-12) die schendingen van type, required, enum, pattern, min/max, oneOf/anyOf/allOf, additionalProperties en array-items rapporteert met volledige instance-paden
  • JSONPath-querymotor (RFC 9535) met ondersteuning voor jokertekens, recursieve afdaling (..), array-slicing en filterexpressies zoals $[?(@.price > 10)]
  • Naast-elkaar deep diff met kleurgecodeerde toegevoegde / verwijderde / gewijzigde / ongewijzigde segmenten plus kopiëren of downloaden van het diff-resultaat
  • Transformatiepijplijn: afvlakken naar puntnotatie, ontvouwen, nulls verwijderen, lege strings/arrays/objecten verwijderen en bewerkingen aaneenschakelen
  • JSON-statistiekendashboard: totaal aantal items, aantal objecten/arrays, opsplitsing per type en maximale nestingdiepte
  • Inline foutmeldingen met regel- en kolomnummer van de parser, plus suggesties om JSONC-modus in te schakelen wanneer de fout op een commentaar of trailing komma lijkt
  • Met één klik kopiëren of downloaden van opgemaakte, geminificeerde, schema- of diff-uitvoer
  • Draait volledig client-side — JSON, schema's en diff-invoer verlaten je browser nooit

Hoe te gebruiken

  1. Plak of sleep je JSON in het Invoer JSON-paneel — automatisch opmaken gebeurt terwijl je typt, of klik op Opmaken voor een expliciete pass.
  2. Mislukt het parseren bij een configuratiebestand of VS Code-instellingen, schakel dan de JSONC-toggle in om commentaren en trailing komma's toe te staan en voer het opnieuw uit.
  3. Schakel over naar de boomweergave om diep geneste structuren te verkennen; gebruik het zoekvak om matchende sleutels of waarden te markeren en kopieer het pad of de waarde van elke knoop.
  4. Open het tabblad Schemavalidatie, plak een JSON Schema-document en klik op Valideren — elke schending toont het falende sleutelwoord en het JSON Pointer-pad van de betreffende waarde.
  5. Gebruik het tabblad Diff-vergelijking om twee JSON-documenten te vergelijken en kopieer de patch als JSON Merge Patch, klaar om elders toe te passen.
  6. Gebruik het tabblad JSONPath-query om delen van het document te extraheren of te filteren met expressies zoals $.store.book[?(@.price < 10)].title.
  7. Gebruik het tabblad Transformaties om af te vlakken, te ontvouwen of nulls te verwijderen; ketens transformaties door ze opnieuw uit te voeren op de bijgewerkte invoer en kopieer of download daarna het resultaat.

Tips en best practices

  • Schakel JSONC in zodra je 'Unexpected token /' of 'Unexpected token ,' ziet — het is bijna altijd een configuratiebestand met commentaren of een trailing komma.
  • Gebruik Sleutels sorteren voordat je JSON-configuratiebestanden commit om PR-diffs minimaal te houden.
  • Kopieer het JSON Pointer-pad uit de boomweergave om in een bugrapport of PR-beschrijving een diepe link naar een specifieke knoop te plaatsen.
  • Als een 64-bits ID weergegeven wordt als 1234567890123456800, levert je producer hem als getal — laat de API ID's als strings versturen.
  • Ketens Nulls verwijderen → Minificeren → Kopiëren om de kleinst mogelijke payload voor HTTP-request bodies te produceren.

Veelgestelde vragen

Slaan jullie mijn JSON op?

Nee. Parsen, validatie, schemacontroles, diffen en transformaties draaien allemaal in je browser via lokale JavaScript en de Web Crypto- / DOM-API's — er wordt niets geüpload. Hierdoor is het veilig om API-responses, configuratiebestanden of gevoelige payloads uit productiesystemen te plakken.

Welke JSON-specificatie volgt de parser?

De strikte modus volgt RFC 8259 / ECMA-404, de IETF- en ECMA-standaarden voor JSON. De JSONC-modus (via de JSONC-toggle) voegt daar de uitbreidingen voor commentaren en trailing komma's aan toe, zoals gebruikt door VS Code's settings.json, tsconfig.json en vergelijkbare configuratiebestanden. JSON5 (bv. niet-aangehaalde sleutels, enkele aanhalingstekens, hex-getallen) wordt momenteel niet ondersteund — gebruik een JSON5-parser als jouw invoer die vormen vereist.

Wat ondersteunt de JSON Schema-validator?

De validatie loopt tegen JSON Schema Draft 2020-12, met volledige dekking van type, required, enum, pattern, format, minimum/maximum, minLength/maxLength, minItems/maxItems, additionalProperties, items, prefixItems, oneOf/anyOf/allOf, $ref en conditionele if/then/else. Elke schending vermeldt het falende sleutelwoord plus het JSON Pointer-pad naar de foutieve waarde, zodat je diep geneste problemen kunt aanwijzen zonder de hele instance door te ploegen.

Welke JSONPath-expressies worden ondersteund?

De querymotor implementeert het oppervlak van RFC 9535: root ($), child-segment ($.key, $['key']), array-index en -slice ([0], [0:3]), jokertekens ([*]), recursieve afdaling (..) en filterexpressies met vergelijkings-, regex- en logische operatoren (bv. $[?(@.price > 10 && @.in_stock == true)]). Meerdere resultaten worden als array geretourneerd; waarden worden in documentvolgorde geëxtraheerd.

Wat is het verschil tussen JSONC en JSON5?

JSONC is gewone JSON plus //-regelcommentaren, /* */-blokcommentaren en trailing komma's — populair voor handmatig bewerkte configuratiebestanden. JSON5 is een superset die daarnaast niet-aangehaalde sleutels, enkel aangehaalde strings, hex- en met decimaal beginnende getallen, en NaN/Infinity toestaat. Dit tool ondersteunt JSONC; voor JSON5-invoer moet je deze eerst converteren of een JSON5-parser gebruiken.

Kan ik zeer grote JSON-bestanden opmaken?

Ja, maar de boomweergave en JSONPath-motor schalen ruwweg lineair met het aantal knopen, dus boven ~1 MB / ~50.000 knopen wordt de UI merkbaar trager. Gebruik bij grote payloads de platte tekstweergave in plaats van de boom, voer eerst de Minificeer-transformatie uit als je alleen compacte uitvoer nodig hebt, of splits het document op de top-level sleutels. Streaming en JSON Lines (.jsonl) vallen buiten de scope — gebruik daarvoor een CLI als jq.

Hoe verhoudt dit zich tot jq, jsonlint of de ingebouwde formatter van VS Code?

jq is onverslaanbaar voor scriptbare pipelines en streaming, en jsonlint dekt strikte validatie. Het voordeel van dit tool is dat alles op één plek gebeurt — opmaken + valideren + schemacontrole + JSONPath + deep diff + transformaties — zonder de browser te verlaten. De ingebouwde formatter van VS Code doet pretty-printing, maar geen schemabewuste foutpaden, JSONPath of diff/merge.

Waarom zegt de parser 'Unexpected token' op een configuratiebestand?

De parser is standaard strikt, dus //-commentaren, /* */-blokken en trailing komma's leveren allemaal een fout op die naar het foutieve teken wijst. Het statuspaneel zal automatisch voorstellen om JSONC-modus in te schakelen wanneer het foutpatroon overeenkomt met een van die kenmerken. Wijst het bericht naar een volledig aangehaalde string, controleer dan op niet-geëscapete backslashes of stuurtekens — dat zijn de andere veelvoorkomende oorzaken.

Kan ik de inspringing en sleutelvolgorde aanpassen?

Ja. Kies 2, 4 of 8 spaties in de Inspringing-besturing en schakel Sleutels sorteren in om object-sleutels alfabetisch uit te voeren — handig voor stabiele diffs en reproduceerbare configuratiebestanden. De uitvoer is altijd UTF-8 met regels gescheiden door newline (geen BOM); de formatter herschikt array-elementen nooit, omdat dat de semantiek zou veranderen.

Welke transformatiebewerkingen zijn beschikbaar?

Afvlakken zet {a:{b:1}} om in {"a.b":1} voor tools die sleutels in puntnotatie verwachten (env-vars, feature flags). Ontvouwen draait dat om. Nulls verwijderen verwijdert recursief alle properties met null-waarde, Lege verwijderen verwijdert daarnaast lege strings, [] en {}, en Minificeren produceert uitvoer op één regel. Transformaties worden toegepast op de huidige invoer, zodat je ze kunt aaneenschakelen tot pijplijnen.

Ondersteunt het tool het extraheren van JSON Pointer-paden?

Ja. In de boomweergave verschijnt bij hover op elke knoop het JSON Pointer-pad (RFC 6901) — bv. /store/book/0/author — dat je met één klik kunt kopiëren. JSON Pointer is dezelfde notatie die schema- en diff-resultaten gebruiken om locaties aan te duiden, dus je kunt een pad uit het ene paneel in het andere plakken om naar dezelfde waarde te navigeren.

Kan ik een opgemaakt resultaat met een collega delen?

De snelste manier is het JSON op hun apparaat plakken — er is geen server-side state om een link naar te delen. Heb je een permalinkachtige overdracht nodig, gebruik dan een Gist of paste-dienst met de geminificeerde uitvoer. Vermijd in elk geval het delen van tokens, secrets of PII, ook client-side, omdat het klembord of de console van de ontvangende collega deze kan vasthouden.

Verwerkt het Unicode en grote getallen correct?

Alle invoer wordt als UTF-8 behandeld en surrogate pairs (emoji, CJK-tekens) gaan zonder escaping heen en weer. Getallen boven Number.MAX_SAFE_INTEGER (2^53 − 1) verliezen precisie, omdat de onderliggende parser IEEE-754-doubles gebruikt — dat is een eigenaardigheid van de JSON-spec, geen beperking van het tool. Stuur 64-bits ID's als strings, zoals de meeste API's doen.