Formatér og validér JSON
Gør JSON lettere at læse, kontrollér syntaksen, eller lav en kompakt version. Denne vejledning gennemgår indrykning, sortering af nøgler og lagring af resultatet.
Prøv eksempelfilen
Download order-options.json, en opdigtet ordre med to varer og feltnavne på engelsk. Objektet customer samler navn og by; arrayet items er en liste med CARD-02 efterfulgt af BOX-01. Eksemplet indeholder tekst i anførselstegn, numeriske antal og priser, den booleske værdi true og null for en tom leveringsbemærkning. Felterne er bevidst usorterede, så du kan se, hvad sorteringsvalget ændrer.
Trin for trin
- Åbn JSON-formatering og validering. Brug Fil til at åbne den medfølgende order-options.json, eller indsæt filens indhold i Dine værdier.
- Sæt Indrykning til 2 for to mellemrum pr. niveau. Lad Sortér objektnøgler være umarkeret ved den første kørsel.
- Vælg Behandl input. Værktøjet kontrollerer JSON-syntaksen, før det viser et resultat. Ved en fejl skal du bruge linje og kolonne til at finde problemet, rette inputtet og prøve igen.
- Læs resultatet. Objektet customer og de to varer skal være lette at følge, med ét felt eller listeelement pr. linje. Felterne bevarer eksemplets rækkefølge, når sortering er slået fra.
- Vælg Download resultat for at gemme formatted.json. Du kan også bruge Kopiér tekst til at sætte resultatet ind i en anden editor.
- Åbn den downloadede fil i en teksteditor, og sammenlign med eksemplet ved hjælp af kontrollerne nedenfor. Prøv derefter de andre indryknings- og sorteringsvalg, og vælg Behandl input igen efter hver ændring.
Eksempler før og efter
Disse korte eksempler bruger objektet customer fra order-options.json, vist som et lille JSON-dokument. Sammenlign det samme navn og den samme by før og efter hvert valg. Det valgfrie referenceafsnit til sidst viser hele ordren.
Gør kompakt JSON lettere at læse
Sæt Indrykning til 2, lad Sortér objektnøgler være umarkeret, og vælg Behandl input. Resultatet får linjeskift og to mellemrum pr. niveau, mens felterne bevarer deres oprindelige rækkefølge.
Før: kompakt input
{"customer":{"name":"Zoë","city":"Bergen"}}Efter: indrykning med to mellemrum
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Sortér nøglerne i et objekt
Behold Indrykning på 2, markér Sortér objektnøgler, og vælg Behandl input. I customer kommer city nu før name. Begge værdier er uændrede.
Før: oprindelig nøglerækkefølge
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Efter: sorterede objektnøgler
{
"customer": {
"city": "Bergen",
"name": "Zoë"
}
}Gør JSON kompakt
Vælg Minimér under Indrykning, lad Sortér objektnøgler være umarkeret, og vælg Behandl input. Formateringens mellemrum og linjeskift forsvinder; teksten og felternes rækkefølge er uændrede.
Før: indrykning med to mellemrum
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Efter: Minimér
{"customer":{"name":"Zoë","city":"Bergen"}}Vælg indrykning
| Valg | Hvad det gør |
|---|---|
| 2 | Bruger to mellemrum for hvert indlejringsniveau. Dette er indstillingen i hovedgennemgangen. |
| 4 | Bruger fire mellemrum for hvert indlejringsniveau, så indlejrede objekter og arrays fremstår tydeligere. |
| ↹ | Bruger en tabulator for hvert indlejringsniveau. Hvor bred en tabulator ser ud, afhænger af din teksteditor. |
| Minimér | Fjerner formateringens mellemrum og linjeskift. Mellemrum inde i tekst i anførselstegn forbliver en del af teksten. Vælg dette til kompakt output, og vælg derefter Behandl input. |
Ændring af input eller en indstilling rydder det tidligere resultat. Vælg Behandl input igen for at oprette et resultat med de nye indstillinger. Værktøjet læser inputfeltet hver gang; det fører ikke automatisk det tidligere resultat tilbage til inputtet.
Sortér objektnøgler
Lad Sortér objektnøgler være umarkeret for at bevare hvert objekts oprindelige feltrækkefølge. Når det er markeret, sorteres nøgler i tekstorden, der skelner mellem store og små bogstaver, i hele dokumentet, også i objekter inde i arrays. Elementerne i arrays bevarer deres oprindelige rækkefølge.
- Behold Indrykning på 2, markér Sortér objektnøgler, og vælg Behandl input.
- Nøglerne på øverste niveau er nu customer, deliveryNote, items, order og paid. I customer kommer city før name. I hver vare kommer price før quantity og sku.
- Arrayet items indeholder stadig CARD-02 efterfulgt af BOX-01. Nøglesortering sorterer ikke varerne efter sku eller price.
Kopiér, download, og begynd igen
| Valg | Hvad det gør |
|---|---|
| Kopiér tekst | Kopierer det aktuelle resultat som tekst. Hvis kopiering ikke er tilgængelig, markerer værktøjet resultatet, så du kan kopiere manuelt. |
| Download resultat | Gemmer det aktuelle resultat som formatted.json. Samme filnavn bruges til formaterede, kompakte og sorterede resultater, så omdøb filerne, hvis du vil beholde flere versioner. |
| Udskriv resultater | Åbner browserens udskriftsdialog for resultatteksten. |
| Indlæs eksempel | Erstatter inputtet med værktøjets indbyggede eksempel og behandler det med de aktuelle indstillinger. Det eksempel adskiller sig fra vejledningens order-options.json. |
| Fjern alle | Rydder inputtet, den valgte fil og resultatet. Indryknings- og sorteringsvalgene bevares. |
Kontrollér din downloadede JSON
- Åbn formatted.json i en teksteditor. Bekræft, at ordren er ORD-1042, kunden er Zoë i Bergen, og at der er to varer.
- Kontrollér værdier og typer: quantity er tallet 2 og derefter 1, priserne bevarer 19.50 og 5.00, paid er den booleske værdi true uden anførselstegn, og deliveryNote er null uden anførselstegn. Navne og varekoder i anførselstegn forbliver strenge.
- Efter at have prøvet Sortér objektnøgler skal du bekræfte feltrækkefølgen ovenfor og kontrollere, at CARD-02 stadig kommer før BOX-01 i arrayet items.
- Prøv Minimér og Behandl input. Indsæt resultatet igen i Dine værdier, sæt Indrykning til 2, og vælg Behandl input igen. Sammenlign værdier og varernes rækkefølge med originaleksemplet; formateringsvalg skal bevare dem.
Spørgsmål og fejlfinding
Hvorfor vises en fejl om ugyldig JSON?
Kontrollér den angivne linje og kolonne samt feltet lige før denne position. Nøgler og tekst kræver dobbelte anførselstegn; felter kræver kommaer og koloner; firkantede og krøllede parenteser skal lukkes. Ret inputtet, og vælg Behandl input igen. Valideringen kontrollerer JSON-syntaks, så et gyldigt resultat kan stadig mangle felter, som din applikation kræver.
Kan jeg bruge kommentarer eller et afsluttende komma?
Fjern kommentarer og kommaer lige før en afsluttende firkantet eller krøllet parentes. De er ikke gyldige i JSON. Formateringsværktøjet kræver gyldigt input og retter det ikke automatisk.
Hvad betyder advarslen om gentagne nøgler?
Meddelelsen »Gentagne objektnøgler er bevaret. Nogle læsere ignorerer gentagne nøgler.« betyder, at en nøgle forekommer flere gange i samme objekt. Formateringsværktøjet bevarer disse poster og advarer dig. Gennemgå kilden, vælg den tilsigtede værdi, og fjern den ekstra post; en anden applikation kan beholde kun én af dem.
Hvorfor kan min fil ikke åbnes eller behandles?
Inputgrænsen er 2 MiB, altså 2 097 152 byte. Lokale tekstfiler skal være UTF-8. Hvis værktøjet melder, at dataene er for komplekse, skal du reducere indlejring eller antallet af poster. Opdel stort input i mindre, komplette JSON-dokumenter frem for at klippe midt i et objekt eller array.
Hvorfor ændres lange tal i en anden applikation?
Det separate præcisionseksempel nedenfor indeholder 9007199254740993 og 0.10000000000000001. Dette formateringsværktøj bevarer talteksten nøjagtigt med alle indryknings- og sorteringsvalg. Formatér exact-numbers.json, og sammenlign resultatet med exact-numbers-formatted.json i en teksteditor. En applikation, der importerer resultatet, kan stadig afrunde tal, så bekræft, at den understøtter den nødvendige præcision. En kode med et indledende nul som 00123 skal være en streng i anførselstegn i JSON.
Kan formatering gendanne cifre, der allerede er afrundet?
Formatering kan ikke gendanne cifre, der er afrundet eller fjernet, før teksten når værktøjet. Gå tilbage til originalkilden, og eksportér hele værdien igen. Hvis værdien er en identifikator frem for en mængde, kan en streng hjælpe modtagende applikationer med at bevare cifrene.
Valgfrit: sammenlign eksemplet og referenceoutput
Disse kodeeksempler og downloads er lavet fra order-options.json med samme formateringsværktøj som på værktøjssiden. De formaterede og kompakte referencer har nøglesortering slået fra; den sorterede reference bruger to mellemrums indrykning med sortering slået til.
Originaleksempel
{"order":"ORD-1042", "customer": {"name":"Zoë","city":"Bergen"}, "items":[{"sku":"CARD-02", "quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1, "price":5.00}], "paid":true, "deliveryNote":null}
To mellemrum; oprindelig nøglerækkefølge
{
"order": "ORD-1042",
"customer": {
"name": "Zoë",
"city": "Bergen"
},
"items": [
{
"sku": "CARD-02",
"quantity": 2,
"price": 19.50
},
{
"sku": "BOX-01",
"quantity": 1,
"price": 5.00
}
],
"paid": true,
"deliveryNote": null
}Minimér; oprindelig nøglerækkefølge
{"order":"ORD-1042","customer":{"name":"Zoë","city":"Bergen"},"items":[{"sku":"CARD-02","quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1,"price":5.00}],"paid":true,"deliveryNote":null}To mellemrum; sorterede objektnøgler
{
"customer": {
"city": "Bergen",
"name": "Zoë"
},
"deliveryNote": null,
"items": [
{
"price": 19.50,
"quantity": 2,
"sku": "CARD-02"
},
{
"price": 5.00,
"quantity": 1,
"sku": "BOX-01"
}
],
"order": "ORD-1042",
"paid": true
}| Referencefil | Indstillinger | Byte |
|---|---|---|
| order-formatted.json | To mellemrum; oprindelig nøglerækkefølge | 300 |
| order-minified.json | Minimér; oprindelig nøglerækkefølge | 193 |
| order-sorted.json | To mellemrum; sorterede objektnøgler | 300 |
Dette er faktiske tekstresultater, ikke skærmbilleder af grænsefladen. Koden kan ombrydes, så den passer til skærmen. Referencefilnavnene adskiller eksemplerne; selve værktøjet downloader alle versioner som formatted.json.