JSON formatteren en valideren in de browser
Met deze JSON formatter en validator maak je compacte JSON leesbaar met twee spaties, vier spaties of tabs. Plak de tekst, kies Formatteren om een ingesprongen uitvoer te krijgen of Valideren om alleen de syntaxis te controleren. De tool gebruikt de ingebouwde JavaScript-functies JSON.parse en JSON.stringify.
Wat is geldige JSON?
JSON kan objecten, arrays, strings, getallen, booleans en null bevatten. Objectsleutels en strings moeten tussen dubbele aanhalingstekens staan. Accolades en vierkante haken moeten correct sluiten. Een komma scheidt elementen, maar een afsluitende komma vóór een sluitende haak is niet toegestaan.
JSON ondersteunt geen opmerkingen, enkele aanhalingstekens, undefined, NaN of functies. Zulke constructies kunnen in JavaScript-broncode geldig lijken, maar zijn geen standaard-JSON.
Formatteren tegenover valideren
Valideren probeert de invoer te parsen en meldt of de syntaxis geldig is. Formatteren parseert dezelfde inhoud en serialiseert het resultaat opnieuw met consistente inspringing. Witruimte buiten strings heeft geen invloed op de gegevens en wordt vervangen door de gekozen stijl.
De formatter corrigeert geen foutieve JSON. Bij een ontbrekende komma, verkeerd aanhalingsteken of ongesloten haak wordt een foutmelding getoond. De exacte tekst van die melding komt uit de JavaScript-engine van de browser en kan per browser verschillen.
Objecten, arrays en datatypes controleren
Een geldige syntaxis betekent niet dat de gegevens voldoen aan de eisen van een API. Een veld kan bijvoorbeeld een string bevatten terwijl de ontvanger een getal verwacht. Vereiste velden, datumnotaties, maximale lengtes en toegestane waarden worden niet gecontroleerd. Daarvoor is een schema-validator, bijvoorbeeld op basis van JSON Schema, nodig.
Mogelijke wijzigingen bij opnieuw serialiseren
JSON.parse zet getallen om naar JavaScript Number. Zeer grote gehele getallen boven het veilige integerbereik kunnen daardoor precisie verliezen wanneer de uitvoer opnieuw met JSON.stringify wordt gemaakt. Gebruik voor grote identifiers bij voorkeur strings of een parser die arbitrary-precision-getallen ondersteunt.
Dubbele objectsleutels zijn problematisch: een parser behoudt doorgaans alleen de laatste waarde. Bovendien is de oorspronkelijke witruimte verdwenen en kan de weergave van bepaalde ontsnapte tekens veranderen. Vertrouw formatteren daarom niet als verliesvrije tekstbewerking wanneer exacte bytes, sleutelduplicaten of handtekeningen relevant zijn.
JSON voor API's en configuratie
Geformatteerde JSON is prettig voor code reviews en foutonderzoek. Compacte JSON is kleiner voor overdracht, maar compressie op HTTP-niveau is vaak belangrijker dan alle witruimte verwijderen. Bewaar configuratiebestanden met een consistente stijl en laat automatische formatters aansluiten op de afspraken van het project.
Privacy en veilig gebruik
De parse- en formatteeracties gebeuren door JavaScript in de browser en de pagina verstuurt de tekst niet voor deze functie. Plak toch geen toegangstokens, privésleutels, persoonsgegevens of productiegegevens in een omgeving die je niet vertrouwt. Browserextensies, klembordsoftware en gedeelde apparaten vallen buiten de formatter zelf.
Praktische werkwijze
Valideer eerst wanneer je alleen syntaxis wilt controleren. Kies daarna de gewenste inspringing en formatteer voor leesbaarheid. Bekijk de foutpositie, controleer datatypes en vergelijk kritieke grote getallen met de bron. Kopieer de uitvoer pas nadat je hebt vastgesteld dat opnieuw serialiseren voor jouw gegevens veilig is.
Reacties