Het API-antwoord staat op één regel, is 40 KB lang, en de configuratielader weigert het zonder te zeggen waarom. Plak de tekst in deze JSON-formatter en de statusregel vertelt meteen of hij geparsed kan worden. Eén klik op een knop Opmaken laat dan zien hoe de gegevens genest zijn.
De controle is de eigen JSON.parse van de browser. Tekst die hier slaagt, slaagt ook in JavaScript.
De JSON-formatter gebruiken, knop voor knop
- De editor opent met een klein voorbeeld dat al is ingesprongen. Wissen maakt hem leeg en Voorbeeld laden haalt het voorbeeld terug. Vervang het door je eigen tekst.
- Houd de statusregel onder de editor in de gaten terwijl je typt. Hij wisselt tussen "Geldige JSON" en "Ongeldige JSON" en toont de grootte. Na een fout citeert een rood vak boven de editor de melding van de parser.
- Druk op Opmaken (2 spaties) of Opmaken (4 spaties) om de tekst te vervangen door de ingesprongen versie. Als de tekst ongeldig is, wordt niets vervangen en blijft het foutvak staan.
- Minimaliseren schrijft één regel zonder witruimte, handig voordat je een testbestand in een
curl-opdracht of een omgevingsvariabele van één regel plakt. Sleutels sorteren (A-Z) ordent de sleutels van elk object en laat het resultaat met 2 spaties inspringen. - Kopiëren kopieert de editortekst. .json downloaden slaat hem op als
data.json.
Waarom 1.0 verandert in 1
De tool husselt je tekst niet. Hij parset de tekst naar JavaScript-waarden en schrijft die waarden weer uit. Dat verklaart de meeste verrassingen. 1.0 komt terug als 1. Het gehele getal 12345678901234567890 komt terug als 12345678901234567000, omdat JavaScript-getallen doubles zijn en cijfers verliezen boven 9007199254740991. Bewaar heel lange ID's als strings.
Als een object dezelfde sleutel twee keer bevat, houdt de parser de laatste waarde. Na het opmaken is de eerste waarde weg. Vergelijk het resultaat met het origineel voordat je het commit.
Gesorteerde sleutels: Zebra vóór appel
Twee versies van een vertaalbestand zien er verschillend uit, maar je vermoedt dat alleen de volgorde van de sleutels is veranderd. Sorteer ze allebei, zet ze in een diff-tool en alleen de echte wijzigingen blijven over. Sorteren werkt op elk niveau. Arrays behouden hun volgorde, omdat de volgorde van items betekenis kan hebben.
De volgorde is op tekencode, niet op woordenboek, dus "Zebra" komt vóór "appel". Sleutels die op gehele getallen lijken, zoals "10", staan altijd eerst. JavaScript doet dat zelf, en sorteren kan dat niet veranderen.
Strikt is strikt, en er is geen ongedaan maken
Alleen strikte JSON wordt geaccepteerd. Dit zijn fouten, ook al accepteren JavaScript of JSON5 ze:
- opmerkingen
- een komma na het laatste item, de meest voorkomende reden voor een rood vak
- enkele aanhalingstekens in plaats van
", en sleutels zonder aanhalingstekens
Je kunt niet met tabs laten inspringen, en de knoppen Opmaken overschrijven de editortekst, dus bewaar een kopie van het origineel. De pagina stelt geen groottelimiet in, maar parset op de hoofdthread. Een bestand van enkele tientallen megabytes kan het tabblad een tijdje laten vastlopen. De bewoording van fouten verschilt tussen Chrome, Firefox en Safari.
Er gaat geen verzoek weg als je op Opmaken drukt
Parsen en opmaken zijn JavaScript op de pagina. Open het tabblad Netwerk van je ontwikkelaarstools en klik op een willekeurige knop: er wordt niets verstuurd. De tool schrijft je tekst niet naar de opslag van de browser. Kopiëren gebruikt het klembord en Downloaden maakt het bestand op je apparaat. Alleen de pagina zelf kwam eenmalig van de server.