Hopp til innholdet
Quaestio

JSON-formatering

Lim inn JSON, så formateres den om, eller komprimeres til én eneste linje.

Resultat

Lim inn JSON i feltet over.
Bygg inn

Bygg inn verktøyet på nettstedet ditt

Kopier koden og lim den inn der verktøyet skal vises, for eksempel i et blogginnlegg eller på en skoleside. Det er gratis, boksen har ingen annonser, og verktøyet regner i besøkerens nettleser.

Slik fungerer det

JSON er et tekstformat for strukturerte data, bygd av objekter med navngitte felter, lister, strenger, tall, sant, usant og tomt.

Formateringen endrer bare blanktegnene. Dataene er de samme før og etter, og du kan derfor trygt formatere om en fil før du leser den.

Komprimeringen fjerner alle unødvendige mellomrom og linjeskift, noe som vanligvis reduserer størrelsen med tjue til tretti prosent for innrykket JSON.

Lar teksten seg ikke tolke, vises feilmeldingen fra nettleserens egen tolker, som pleier å peke ut hvilket tegn som var uventet. Vanligst er et komma for mye før en avsluttende klamme, og anførselstegn av feil type.

Kommentarer er ikke tillatt i JSON, og feltnavn må stå i rette doble anførselstegn. Det er den vanligste forskjellen fra hvordan objekter skrives i JavaScript.

Slik formaterer verktøyet

Verktøyet gjør to ting etter hverandre. Først prøves teksten med nettleserens JSON.parse, men bare for å se at den er gyldig. Selve omformateringen går deretter tegn for tegn gjennom din egen tekst: blanktegn utenfor strenger fjernes, og linjeskift og innrykk på to eller fire mellomrom legges inn etter klammer, hakeparenteser og kommaer. Tomme objekter og lister skrives sammen. Strenger kopieres urørt, med escape-sekvensene sine i behold. Komprimeringen er den samme gjennomgangen uten linjeskift og innrykk.

Tallene står urørt

Å lese inn JSON i JavaScript og skrive den ut igjen kan endre tallene, fordi JavaScript har én enkelt talltype med begrenset presisjon. Prøvd med verktøyets kode blir heltallet 12345678901234567890 da til 12345678901234567000, tallet 1.0 blir 1, og 1e400 blir null. I verktøyet står alle tre igjen nøyaktig slik de ble skrevet. RFC 8259 regner bare heltall opp til 2⁵³ − 1, altså 9 007 199 254 740 991, som trygge mellom ulike systemer, og I-JSON (RFC 7493) anbefaler at tall som må være nøyaktige og er større enn det, sendes som strenger.

Doble navn

Et objekt med samme navn to ganger går gjennom kontrollen. RFC 8259 sier bare at navnene bør være unike, og at det er uforutsigbart hva mottakeren gjør med duplikater; mange tolkere beholder bare den siste verdien. Verktøyet beholder begge, så duplikatet synes i resultatet. En omvei via JavaScript ville i stillhet ha fjernet den første verdien. I-JSON forbyr duplikater helt.

Vanlige feil

Et tabulatortegn eller et linjeskift inne i en streng gjør teksten ugyldig, fordi RFC 8259 krever at kontrolltegnene U+0000–U+001F skrives med escape, for eksempel \t for tabulator. Det skjer lett når tekst limes inn fra et regneark. NaN og Infinity, som finnes i JavaScript, men ikke i JSON, avvises også, og det samme gjør et byte-rekkefølgemerke (BOM) først i teksten, selv om RFC 8259 tillater at tolkere ser bort fra det.

Kilder

Slik kontrolleres verktøyene