tigtools

JSON-opmaker

Plak JSON om deze netjes op te maken of te verkleinen. Is de JSON ongeldig, dan zie je wat er mis is en waar. Je data blijft in je browser.

Werkt in je browser Geen registratie nodig

Inspringing

Zo gebruik je deze tool

  1. Plak je JSON in het invoervak of druk op 'Probeer een voorbeeld'.
  2. Kies de inspringing (2 spaties, 4 spaties of een tab) en sorteer desgewenst de sleutels alfabetisch.
  3. Bekijk het geformatteerde resultaat rechts. Druk op Minify om alle witruimte te verwijderen.
  4. Bevat de JSON een syntaxisfout, herstel die dan op de aangegeven regel en kolom. Kopieer of download vervolgens het resultaat als .json-bestand.

Hoe het werkt

De formatter verwerkt je tekst met de ingebouwde JSON-parser van de browser en schrijft die opnieuw uit met de inspringing die je kiest. De uitvoer is daardoor altijd geldige, consistent ingesprongen JSON. Met Minify wordt dezelfde data zonder spaties of regeleinden geschreven. Dat is de compactste vorm om over een netwerk te versturen of in een configuratiewaarde op te slaan.

Als de invoer geen geldige JSON is, vindt een kleine strikte controle het eerste probleem en geeft de regel en kolom aan, met een duidelijke uitleg van veelgemaakte fouten: afsluitende komma's, enkele aanhalingstekens, sleutels zonder aanhalingstekens, opmerkingen en waarden zoals NaN of undefined die wel in JavaScript bestaan, maar niet in JSON. Browsers formuleren hun eigen JSON-foutmeldingen verschillend. Daarom berekent deze tool de positie zelf, in plaats van die uit de browsermelding over te nemen.

Houd rekening met de beperkingen van opnieuw formatteren. Getallen worden opgeslagen als floating-pointgetallen met dubbele precisie. Daardoor verliezen gehele getallen groter dan 9,007,199,254,740,991 (2^53 − 1), zoals sommige database-ID's, hun precisie: 9007199254740993 wordt 9007199254740992. Sla zulke ID's op als strings. Als een object dezelfde sleutel twee keer bevat, blijft alleen de laatste waarde behouden. Sleutels die op gehele getallen lijken ("1", "20") worden door JavaScript altijd vóór andere sleutels geplaatst, ongeacht of je sorteert. Invoer tot enkele megabytes werkt. Bij meer dan ongeveer 300.000 tekens wordt de live-opmaak gepauzeerd en moet je op Formatteren drukken, zodat typen soepel blijft.

Voorbeelden

Een API-antwoord lezen

Een REST API geeft één lange regel terug, zoals {"user":{"id":7,"tags":["a","b"]}}. Met inspringing van 2 spaties komt elke sleutel op een eigen regel en wordt de tags-array ingesprongen, zodat je de structuur in één oogopslag ziet.

Twee configuratiebestanden vergelijken

Twee JSON-configuratiebestanden bevatten dezelfde instellingen, maar in een andere volgorde. Formatteer beide met 'Sleutels sorteren A–Z' ingeschakeld. De uitvoer staat nu in dezelfde volgorde en een tekstvergelijking toont alleen de echte verschillen.

Een onjuiste komma opsporen

Een handmatig bewerkt package.json-bestand kan niet worden geladen. Plak de inhoud om 'Afsluitende komma' te zien op regel 14, kolom 5. De melding wijst naar de komma na de laatste dependency.

Veelgestelde vragen

Waarom is een groot getal veranderd na het formatteren?

JSON-parsers in browsers slaan getallen op als 64-bits floating-pointgetallen. Daarmee kunnen gehele getallen alleen exact worden weergegeven tot en met 9,007,199,254,740,991. Grotere gehele getallen worden afgerond naar de dichtstbijzijnde waarde die wel kan worden weergegeven. Bevat je data 64-bits-ID's, verstuur die dan als strings.

Kan de tool JSON met opmerkingen of afsluitende komma's formatteren (JSON5, JSONC)?

Nee. De tool volgt de JSON-standaard (RFC 8259) strikt en meldt opmerkingen en afsluitende komma's als fouten, met de positie erbij, zodat je ze kunt verwijderen. De meeste JSON-parsers in programmeertalen werken ook zo.

Verandert het sorteren van sleutels mijn data?

Nee. Alleen de volgorde van sleutels in objecten verandert; waarden blijven hetzelfde. JSON-objecten hebben per definitie geen vaste volgorde, dus het resultaat is gelijkwaardig. Arrays worden nooit herschikt, omdat de volgorde daarvan betekenis heeft.

Hoe groot mag een bestand zijn om het te formatteren?

Bestanden van enkele megabytes werken in een actuele desktopbrowser. Bij invoer van meer dan ongeveer 300.000 tekens wacht de tool tot je op Formatteren of Minify drukt, in plaats van na elke toetsaanslag opnieuw te formatteren. Bij zeer grote uitvoer kan het tekstvak op telefoons traag scrollen.

Wordt mijn JSON ergens geüpload?

Nee. Het parseren en formatteren gebeurt in je browser met JavaScript. De tekst wordt niet naar een server verstuurd en niet opgeslagen.

Privacy

Je JSON wordt alleen in je browser verwerkt en opgemaakt. De gegevens worden niet geüpload, gelogd of opgeslagen en zijn niet opgenomen in analytics.