Formater og valider JSON
Gjør JSON lettere å lese, kontroller syntaksen eller lag en kompakt versjon. Denne veiledningen viser innrykk, sortering av nøkler og lagring av resultatet.
Prøv eksempelfilen
Last ned order-options.json, en oppdiktet bestilling med to varer og feltnavn på engelsk. Objektet customer samler navn og by; matrisen items er en liste med CARD-02 etterfulgt av BOX-01. Eksemplet inneholder tekst i anførselstegn, numeriske antall og priser, den boolske verdien true og null for en tom leveringsmerknad. Feltene er bevisst usorterte, slik at du kan se hva sorteringsvalget endrer.
Trinn for trinn
- Åpne JSON-formatering og validering. Bruk Fil for å åpne den medfølgende order-options.json, eller lim inn filinnholdet i Dine verdier.
- Sett Innrykk til 2 for to mellomrom per nivå. La Sorter objektnøkler være slått av for første kjøring.
- Velg Behandle inndata. Verktøyet kontrollerer JSON-syntaksen før det viser et resultat. Ved en feil bruker du linje og kolonne til å finne problemet, retter inndataene og prøver igjen.
- Les resultatet. Objektet customer og de to varene skal være lette å følge, med ett felt eller listeelement per linje. Feltene beholder eksemplets rekkefølge når sortering er slått av.
- Velg Last ned resultat for å lagre formatted.json. Du kan også bruke Kopier tekst for å legge resultatet i en annen editor.
- Åpne den nedlastede filen i en teksteditor og sammenlign med eksemplet ved hjelp av kontrollene nedenfor. Prøv deretter de andre innrykks- og sorteringsvalgene, og velg Behandle inndata på nytt etter hver endring.
Eksempler før og etter
Disse korte eksemplene bruker objektet customer fra order-options.json, vist som et lite JSON-dokument. Sammenlign samme navn og by før og etter hvert valg. Den valgfrie referansedelen til slutt viser hele bestillingen.
Gjør kompakt JSON lettere å lese
Sett Innrykk til 2, la Sorter objektnøkler være slått av og velg Behandle inndata. Resultatet får linjeskift og to mellomrom per nivå, mens feltene beholder sin opprinnelige rekkefølge.
Før: kompakte inndata
{"customer":{"name":"Zoë","city":"Bergen"}}Etter: innrykk med to mellomrom
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Sorter nøklene i et objekt
Behold Innrykk på 2, merk av Sorter objektnøkler og velg Behandle inndata. I customer kommer city nå før name. Begge verdiene er uendret.
Før: opprinnelig nøkkelrekkefølge
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Etter: sorterte objektnøkler
{
"customer": {
"city": "Bergen",
"name": "Zoë"
}
}Gjør JSON kompakt
Velg Minimer under Innrykk, la Sorter objektnøkler være slått av og velg Behandle inndata. Mellomrom og linjeskift fra formateringen forsvinner; teksten og feltrekkefølgen er uendret.
Før: innrykk med to mellomrom
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Etter: Minimer
{"customer":{"name":"Zoë","city":"Bergen"}}Velg innrykk
| Valg | Hva det gjør |
|---|---|
| 2 | Bruker to mellomrom for hvert nivå. Dette er innstillingen i hovedgjennomgangen. |
| 4 | Bruker fire mellomrom for hvert nivå, slik at nestede objekter og matriser skiller seg tydeligere ut. |
| ↹ | Bruker en tabulator for hvert nivå. Hvor bred tabulatoren ser ut, avhenger av teksteditoren. |
| Minimer | Fjerner formateringens mellomrom og linjeskift. Mellomrom inne i tekst med anførselstegn forblir en del av teksten. Velg dette for kompakt utdata, og velg deretter Behandle inndata. |
Endring av inndata eller et valg tømmer det forrige resultatet. Velg Behandle inndata på nytt for å lage et resultat med de nye innstillingene. Verktøyet leser inndatafeltet hver gang; det flytter ikke automatisk det forrige resultatet tilbake til inndataene.
Sorter objektnøkler
La Sorter objektnøkler være slått av for å beholde den opprinnelige feltrekkefølgen i hvert objekt. Når det er slått på, sorteres nøkler i tekstlig rekkefølge som skiller mellom store og små bokstaver i hele dokumentet, også i objekter inne i matriser. Matriseelementene beholder sin opprinnelige rekkefølge.
- Behold Innrykk på 2, merk av Sorter objektnøkler og velg Behandle inndata.
- Nøklene på øverste nivå er nå customer, deliveryNote, items, order og paid. I customer kommer city før name. I hver vare kommer price før quantity og sku.
- Matrisen items inneholder fortsatt CARD-02 etterfulgt av BOX-01. Nøkkelsortering sorterer ikke varene etter sku eller price.
Kopier, last ned og start på nytt
| Valg | Hva det gjør |
|---|---|
| Kopier tekst | Kopierer det gjeldende resultatet som tekst. Hvis kopiering ikke er tilgjengelig, markerer verktøyet resultatet slik at du kan kopiere manuelt. |
| Last ned resultat | Lagrer det gjeldende resultatet som formatted.json. Dette filnavnet brukes for formaterte, kompakte og sorterte resultater, så gi filene nye navn hvis du vil beholde flere versjoner. |
| Skriv ut resultater | Åpner nettleserens utskriftsdialog for resultatteksten. |
| Last inn eksempel | Erstatter inndataene med verktøyets innebygde eksempel og behandler det med de gjeldende innstillingene. Det eksemplet er forskjellig fra denne veiledningens order-options.json. |
| Fjern alle | Tømmer inndataene, den valgte filen og resultatet. Innrykk og sorteringsvalg beholdes. |
Kontroller den nedlastede JSON-filen
- Åpne formatted.json i en teksteditor. Bekreft at bestillingen er ORD-1042, kunden er Zoë i Bergen, og at det finnes to varer.
- Kontroller verdier og typer: quantity er tallet 2 og deretter 1, prisene beholder 19.50 og 5.00, paid er den boolske verdien true uten anførselstegn, og deliveryNote er null uten anførselstegn. Navn og varekoder med anførselstegn forblir strenger.
- Etter å ha prøvd Sorter objektnøkler, bekreft feltrekkefølgen ovenfor og at CARD-02 fortsatt kommer før BOX-01 i matrisen items.
- Prøv Minimer og Behandle inndata. Lim resultatet tilbake i Dine verdier, sett Innrykk til 2 og velg Behandle inndata igjen. Sammenlign verdier og varerekkefølge med originaleksemplet; formateringsvalg skal bevare dem.
Spørsmål og feilsøking
Hvorfor meldes ugyldig JSON?
Kontroller oppgitt linje og kolonne og feltet rett før denne posisjonen. Nøkler og tekst trenger doble anførselstegn; felt trenger komma og kolon; hakeparenteser og klammeparenteser må lukkes. Rett inndataene og velg Behandle inndata igjen. Validering kontrollerer JSON-syntaks, så et gyldig resultat kan fortsatt mangle felt som programmet ditt krever.
Kan jeg bruke kommentarer eller et avsluttende komma?
Fjern kommentarer og komma rett før en avsluttende hakeparentes eller klammeparentes. De er ikke gyldige i JSON. Formatereren krever gyldige inndata og retter dem ikke automatisk.
Hva betyr advarselen om gjentatte nøkler?
Meldingen «Gjentatte objektnøkler er bevart. Noen lesere forkaster gjentatte nøkler.» betyr at en nøkkel forekommer flere ganger i samme objekt. Formatereren beholder oppføringene og varsler deg. Gå gjennom kilden, velg den tilsiktede verdien og fjern den ekstra oppføringen; et annet program kan beholde bare én av dem.
Hvorfor kan ikke filen åpnes eller behandles?
Inndatagrensen er 2 MiB, altså 2 097 152 byte. Lokale tekstfiler må være UTF-8. Hvis verktøyet melder at dataene er for komplekse, reduser nesting eller antall oppføringer. Del store inndata i mindre, komplette JSON-dokumenter i stedet for å kutte midt i et objekt eller en matrise.
Hvorfor endres lange tall i et annet program?
Det separate presisjonseksemplet nedenfor inneholder 9007199254740993 og 0.10000000000000001. Denne formatereren bevarer tallteksten nøyaktig med alle innrykks- og sorteringsvalg. Formater exact-numbers.json og sammenlign resultatet med exact-numbers-formatted.json i en teksteditor. Et program som importerer resultatet, kan fortsatt avrunde tall, så bekreft at det støtter presisjonen du trenger. En kode med innledende null, som 00123, må være en streng med anførselstegn i JSON.
Kan formatering gjenopprette sifre som allerede er avrundet?
Formatering kan ikke gjenopprette sifre som ble avrundet eller fjernet før teksten nådde verktøyet. Gå tilbake til originalkilden og eksporter hele verdien igjen. Når verdien er en identifikator fremfor en mengde, kan en streng hjelpe mottakende programmer med å beholde sifrene.
Valgfritt: sammenlign eksemplet og referanseutdataene
Disse kodeeksemplene og nedlastingene ble laget fra order-options.json med samme formaterer som på verktøysiden. De formaterte og kompakte referansene har nøkkelsortering slått av; den sorterte referansen bruker to mellomrom i innrykket med sortering slått på.
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 mellomrom; opprinnelig nøkkelrekkefø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
}Minimer; opprinnelig nøkkelrekkefø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 mellomrom; sorterte objektnøkler
{
"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
}| Referansefil | Innstillinger | Byte |
|---|---|---|
| order-formatted.json | To mellomrom; opprinnelig nøkkelrekkefølge | 300 |
| order-minified.json | Minimer; opprinnelig nøkkelrekkefølge | 193 |
| order-sorted.json | To mellomrom; sorterte objektnøkler | 300 |
Dette er faktiske tekstutdata, ikke skjermbilder av grensesnittet. Koden kan brytes for å passe skjermen. Referansefilnavnene skiller eksemplene; selve verktøyet laster ned alle versjoner som formatted.json.