Spring til indhold

JSON Formatter: Minimer & Forskøn JSON Online Gratis

Gratis JSON-formatter til øjeblikkelig minimering og forskønnelse af JSON. Komprimér JSON, validér syntaks og pretty print med korrekt indrykning. Hurtig, sikker browserbaseret værktøj.

JSON Formatter

Indlæsningsberegner...
📚

Dokumentation

JSON-formater: Gør JSON mindre og mere læsbar

Et JSON-formateringsværktøj er et værktøj, der omformaterer JSON-tekst til et andet layout uden at ændre dataene i den. Denne JSON-formater gør to ting: Den minimerer JSON ved at fjerne overflødige mellemrum, og den forskønner JSON ved at tilføje indrykning og linjeskift, så teksten bliver læsbar.

Hvad er JSON?

JSON, en forkortelse for JavaScript Object Notation, er et tekstformat til lagring og afsendelse af data. Webservere bruger det til at sende oplysninger til apps og browsere. Programmer bruger det til indstillingsfiler. Data gemmes som objekter med krøllede parenteser {} og arrays med kantede parenteser []. I et objekt har hvert stykke data et navn, der kaldes en nøgle, og en værdi. En værdi kan være en streng, et tal, true, false, null eller et andet objekt eller array.

Et lille JSON-objekt ser sådan ud:

1{
2  "name": "John Doe",
3  "age": 30,
4  "isEmployee": true
5}
6

Sådan fungerer dette JSON-formateringsværktøj

Nogle JSON-værktøjer læser teksten ind i et programmeringssprogs egen datastruktur og skriver derefter denne struktur ud som tekst igen. Denne tur-retur-konvertering kan ændre dataene. Den kan omskrive meget store tal, fjerne tal, der er for store til at kunne repræsenteres, og ændre rækkefølgen af nøglerne i et objekt.

Dette værktøj undgår det. Det læser inputtet tegn for tegn og kontrollerer, at det følger JSON-grammatikken. Når det omskriver outputtet, kopierer det hvert tal og hver streng præcis, som de blev skrevet, i samme rækkefølge. At minimere eller forskønne et dokument ændrer aldrig et tal, en nøgle, rækkefølgen af nøgler eller en duplikeret nøgle.

Hvis teksten ikke er gyldig JSON, stopper værktøjet og viser en fejl i stedet for at gætte, hvad der var ment.

Formateringen foregår i browseren. Værktøjet sender ikke den indsatte tekst til en server. Inputtet føjes til sidens webadresse som en forespørgselsparameter, så et formateret dokument kan deles eller bogmærkes med et link.

Sådan minimeres JSON

  1. Indsæt JSON i inputfeltet.
  2. Klik på "Minify".
  3. Værktøjet fjerner mellemrum, tabulatorer og linjeskift mellem tokens og viser resultatet nedenfor.
  4. Klik på "Copy" over resultatet for at kopiere det.

Regneeksempel

Før:

1{
2  "name": "John Smith",
3  "age": 32,
4  "skills": [
5    "JavaScript",
6    "HTML",
7    "CSS"
8  ]
9}
10

Efter:

1{"name":"John Smith","age":32,"skills":["JavaScript","HTML","CSS"]}
2

Formel for JSON-minimering

Den plads, der spares ved minimering, kan skrives som:

Plads sparet=(1−Minimeret størrelseOprindelig størrelse)×100%\text{Plads sparet} = \left(1 - \frac{\text{Minimeret størrelse}}{\text{Oprindelig størrelse}}\right) \times 100\%

I eksemplet ovenfor fylder den formaterede version 98 bytes, og den minimerede version fylder 67 bytes:

(1−6798)×100%≈32%\left(1 - \frac{67}{98}\right) \times 100\% \approx 32\%

Den nøjagtige besparelse afhænger af, hvor mange blanktegn og hvor meget indrykning det oprindelige dokument havde. Et dokument med dyb indlejring og indrykning på 4 mellemrum bliver mindre end et dokument, der allerede var kompakt.

Sådan forskønnes JSON

  1. Indsæt JSON i inputfeltet. Det kan allerede være minimeret eller være rodet formateret.
  2. Klik på "Beautify".
  3. Værktøjet tilføjer indrykning på 2 mellemrum, ét linjeskift pr. nøgle eller array-element samt et mellemrum efter hvert kolon.
  4. Klik på "Copy" over resultatet for at kopiere det.

Regneeksempel

Før:

1{"name":"John Smith","age":32,"skills":["JavaScript","HTML","CSS"]}
2

Efter:

1{
2  "name": "John Smith",
3  "age": 32,
4  "skills": [
5    "JavaScript",
6    "HTML",
7    "CSS"
8  ]
9}
10

Et tomt objekt eller array forbliver på én linje som {} eller [] i stedet for at blive delt over tre linjer.

Almindelige JSON-fejl, som dette værktøj fanger

JSON har en streng grammatik, der er strengere end grammatikken i et typisk programmeringssprog. Dette værktøj afviser tekst, der bryder en af disse regler, og viser meddelelsen "Invalid JSON" i stedet for et resultat:

  • Et manglende komma mellem to værdier.
  • Et afsluttende komma efter det sidste element i et objekt eller array (ikke tilladt i JSON, i modsætning til JavaScript).
  • En nøgle, der ikke er omgivet af dobbelte anførselstegn.
  • Enkelt anførselstegn omkring en streng i stedet for dobbelte anførselstegn.
  • Uoverensstemmende eller manglende kantede og krøllede parenteser.
  • En ugyldig eller ufuldstændig escape-sekvens i en streng, f.eks. en enkeltstående omvendt skråstreg.
  • Et kontroltegn, f.eks. et egentligt linjeskift eller en tabulator, skrevet inde i en streng i stedet for som \n eller \t.
  • Et tal i en form, som JSON ikke tillader, f.eks. et indledende nul (01), et afsluttende decimalpunktum (1.) eller et indledende plustegn (+1).

JSON har heller ingen syntaks til kommentarer. Tekst, der begynder med // eller /*, er ikke en del af JSON-grammatikken, så indsættelse af JSON med kommentarer giver en "Invalid JSON"-fejl i stedet for JSON, hvor kommentarerne lydløst er fjernet. Fjern kommentarerne først for at formatere en sådan fil.

Anvendelser af JSON-formateren

  • Webudvikling: læsning af API-svar under fejlfinding og minimering af konfigurationsfiler før implementering.
  • API-udvikling: kontrol af, at brødteksten i en forespørgsel eller et svar er gyldig JSON.
  • Dataanalyse: omdannelse af en kompakt JSON-eksport til et læsbart layout til gennemgang.
  • Konfigurationsfiler: forskønnelse af en konfigurationsfil før manuel redigering og efterfølgende minimering igen.

Alternativer

Kodeeditorer som Visual Studio Code kan formatere JSON-filer uden at forlade editoren. Kommandolinjeværktøjer som jq kan formatere og filtrere JSON som en del af et script. Programmeringssprog leveres også med JSON-biblioteker, f.eks. Pythons json-modul eller JavaScripts indbyggede JSON-objekt, som de fleste programmer bruger til at fortolke JSON til deres egne datastrukturer. En online-formateringstjeneste som denne er nyttig, når der er behov for et hurtigt enkeltstående tjek uden at installere noget.

JSON's historie

Douglas Crockford specificerede JSON i begyndelsen af 2000'erne med udgangspunkt i den måde, JavaScript skriver objektlitteraler på, men formatet blev udformet, så det kunne læses og skrives af alle programmeringssprog. Formatet blev først offentligt dokumenteret omkring 2001 og senere standardiseret som RFC 4627 i (11.800 cm) 2006, som ECMA-404 i (1.030 cm) 2013 og som RFC 8259 i (21.000 cm) 2017. Efterhånden som web-API'er voksede gennem 2000'erne, erstattede JSON XML som det mest almindelige format til afsendelse af data mellem servere og browsere, hovedsagelig fordi det er kortere og direkte afspejler datastrukturer, der allerede er indbygget i JavaScript. Formaterings- og valideringsværktøjer fulgte efterhånden, som JSON-dokumenter blev større og mere indlejrede.

Ofte stillede spørgsmål

Fjerner minimering kommentarer fra JSON? Nej. JSON har ingen kommentarsyntaks, og dette værktøj tilføjer ingen. Hvis inputtet indeholder kommentarer i stil med // eller /*, rapporterer værktøjet en "Invalid JSON"-fejl i stedet for at formatere det. Fjern kommentarerne, før teksten indsættes.

Ændrer formatering mine tal eller rækkefølgen af mine nøgler? Nej. Værktøjet kopierer hvert tal og hver streng præcis, som de er skrevet, og bevarer nøglernes oprindelige rækkefølge, herunder eventuelle duplikerede nøgler.

Hvilken indrykning bruger forskønnelsesværktøjet? To mellemrum pr. indlejringsniveau samt et mellemrum efter hvert kolon.

Sendes mine JSON-data til en server? Nej. Formateringen foregår i browseren. Den tekst, du indsætter, kopieres ind i sidens URL som en json-forespørgselsparameter, så siden kan deles eller bogmærkes. Intet uploades.

Er der en størrelsesgrænse? Der er ingen fast grænse, men hele dokumentet holdes i hukommelsen, mens det fortolkes, så en meget stor fil (mange megabytes) kan være langsom på en ældre enhed.

Bliver ugyldig JSON bare delvist rettet? Nej. Hvis inputtet bryder JSON-grammatikken et eller andet sted, viser værktøjet en fejl i stedet for at returnere et delvist eller gættet resultat.

Referencer

  1. "Introducing JSON." JSON.org, https://www.json.org/json-en.html.
  2. Bray, T., red. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, december 2017, https://www.rfc-editor.org/rfc/rfc8259.
  3. "ECMA-404: The JSON Data Interchange Syntax." Ecma International, https://www.ecma-international.org/publications-and-standards/standards/ecma-404/.
  4. "JSON." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON.