Alla guider

Formatera och validera JSON

Gör JSON lättare att läsa, kontrollera syntaxen eller skapa en kompakt version. Den här guiden går igenom indrag, sortering av nycklar och hur du sparar resultatet.

Prova exempelfilen

Ladda ned order-options.json, en påhittad beställning med två varor och fältnamn på engelska. Objektet customer samlar namn och stad; arrayen items är en lista med CARD-02 följt av BOX-01. Exemplet innehåller text inom citattecken, numeriska antal och priser, det booleska värdet true och null för en tom leveransanteckning. Fälten är avsiktligt osorterade så att du kan se vad sorteringsvalet ändrar.

Steg för steg

  1. Öppna JSON-formatering och validering. Använd Fil för att öppna den medföljande order-options.json, eller klistra in filens innehåll i Dina värden.
  2. Ställ in Indrag på 2 för två blanksteg per nivå. Låt Sortera objektnycklar vara avmarkerat vid första körningen.
  3. Välj Bearbeta indata. Verktyget kontrollerar JSON-syntaxen innan ett resultat visas. Vid ett fel använder du rad och kolumn för att hitta problemet, rättar indata och försöker igen.
  4. Läs resultatet. Objektet customer och de två varorna ska vara lätta att följa, med ett fält eller listobjekt per rad. Fälten behåller exemplets ordning när sorteringen är avstängd.
  5. Välj Ladda ned resultat för att spara formatted.json. Du kan också använda Kopiera text för att lägga resultatet i en annan editor.
  6. Öppna den nedladdade filen i en texteditor och jämför med exemplet med hjälp av kontrollerna nedan. Prova sedan de andra indrags- och sorteringsvalen och välj Bearbeta indata igen efter varje ändring.

Exempel före och efter

De här korta exemplen använder objektet customer från order-options.json, visat som ett litet JSON-dokument. Jämför samma namn och stad före och efter varje inställning. Den valfria referensdelen längst ned visar hela beställningen.

Gör kompakt JSON lättare att läsa

Ställ in Indrag på 2, låt Sortera objektnycklar vara avmarkerat och välj Bearbeta indata. Resultatet får radbrytningar och två blanksteg per nivå medan fälten behåller sin ursprungliga ordning.

Före: kompakt indata

{"customer":{"name":"Zoë","city":"Bergen"}}

Efter: indrag med två blanksteg

{
  "customer": {
    "name": "Zoë",
    "city": "Bergen"
  }
}

Sortera nycklarna i ett objekt

Behåll Indrag på 2, markera Sortera objektnycklar och välj Bearbeta indata. I customer kommer city nu före name. Båda värdena är oförändrade.

Före: ursprunglig nyckelordning

{
  "customer": {
    "name": "Zoë",
    "city": "Bergen"
  }
}

Efter: sorterade objektnycklar

{
  "customer": {
    "city": "Bergen",
    "name": "Zoë"
  }
}

Gör JSON kompakt

Välj Minimera under Indrag, låt Sortera objektnycklar vara avmarkerat och välj Bearbeta indata. Formateringens blanksteg och radbrytningar försvinner; texten och fältordningen är oförändrade.

Före: indrag med två blanksteg

{
  "customer": {
    "name": "Zoë",
    "city": "Bergen"
  }
}

Efter: Minimera

{"customer":{"name":"Zoë","city":"Bergen"}}

Välj indrag

ValVad det gör
2Använder två blanksteg för varje nästlingsnivå. Detta är inställningen i huvudgenomgången.
4Använder fyra blanksteg för varje nästlingsnivå så att nästlade objekt och arrayer framträder tydligare.
↹Använder en tabb för varje nästlingsnivå. Hur bred en tabb ser ut beror på din texteditor.
MinimeraTar bort formateringens blanksteg och radbrytningar. Blanksteg i text inom citattecken förblir en del av texten. Välj detta för kompakt utdata och välj sedan Bearbeta indata.

Om du ändrar indata eller en inställning rensas det tidigare resultatet. Välj Bearbeta indata igen för att skapa ett resultat med de nya inställningarna. Verktyget läser indatafältet varje gång; det för inte automatiskt tillbaka det tidigare resultatet till indata.

Sortera objektnycklar

Låt Sortera objektnycklar vara avmarkerat för att behålla varje objekts ursprungliga fältordning. När det är markerat sorteras nycklar i skiftlägeskänslig textordning i hela dokumentet, även i objekt inuti arrayer. Arrayens element behåller sin ursprungliga ordning.

  1. Behåll Indrag på 2, markera Sortera objektnycklar och välj Bearbeta indata.
  2. Nycklarna på den översta nivån är nu customer, deliveryNote, items, order och paid. I customer kommer city före name. I varje vara kommer price före quantity och sku.
  3. Arrayen items innehåller fortfarande CARD-02 följt av BOX-01. Nyckelsortering sorterar inte varorna efter sku eller price.

Kopiera, ladda ned och börja om

ValVad det gör
Kopiera textKopierar det aktuella resultatet som text. Om kopiering inte är tillgänglig markerar verktyget resultatet så att du kan kopiera manuellt.
Ladda ned resultatSparar det aktuella resultatet som formatted.json. Samma filnamn används för formaterade, kompakta och sorterade resultat, så byt namn på filerna om du vill behålla flera versioner.
Skriv ut resultatÖppnar webbläsarens utskriftsdialog för resultattexten.
Läs in exempelErsätter indata med verktygets inbyggda exempel och bearbetar det med de aktuella inställningarna. Det exemplet skiljer sig från den här guidens order-options.json.
Ta bort allaRensar indata, den valda filen och resultatet. Indrags- och sorteringsvalen behålls.

Kontrollera din nedladdade JSON

  • Öppna formatted.json i en texteditor. Kontrollera att beställningen är ORD-1042, att kunden är Zoë i Bergen och att det finns två varor.
  • Kontrollera värden och typer: quantity är talet 2 och sedan 1, priserna behåller 19.50 och 5.00, paid är det booleska värdet true utan citattecken och deliveryNote är värdet null utan citattecken. Namn och varukoder inom citattecken förblir strängar.
  • När du har provat Sortera objektnycklar, kontrollera fältordningen ovan och att CARD-02 fortfarande kommer före BOX-01 i arrayen items.
  • Prova Minimera och Bearbeta indata. Klistra tillbaka resultatet i Dina värden, ställ in Indrag på 2 och välj Bearbeta indata igen. Jämför värden och varornas ordning med originalexemplet; formateringsvalen ska bevara dem.

Frågor och felsökning

Varför rapporteras ogiltig JSON?

Kontrollera den angivna raden och kolumnen samt fältet precis före den positionen. Nycklar och text kräver dubbla citattecken; fält behöver kommatecken och kolon; hakparenteser och klammerparenteser måste avslutas. Rätta indata och välj Bearbeta indata igen. Validering kontrollerar JSON-syntax, så ett giltigt resultat kan fortfarande sakna fält som ditt program kräver.

Kan jag använda kommentarer eller ett avslutande kommatecken?

Ta bort kommentarer och kommatecken precis före en avslutande hakparentes eller klammerparentes. De är inte giltiga i JSON. Formateraren kräver giltig indata och rättar den inte automatiskt.

Vad betyder varningen om upprepade nycklar?

Meddelandet ”Upprepade objektnycklar har bevarats. Vissa läsare ignorerar upprepade nycklar.” betyder att en nyckel förekommer flera gånger i samma objekt. Formateraren behåller posterna och varnar dig. Granska källan, välj det avsedda värdet och ta bort den extra posten; ett annat program kan behålla bara en av dem.

Varför går det inte att öppna eller bearbeta min fil?

Gränsen för indata är 2 MiB, alltså 2 097 152 byte. Lokala textfiler måste vara UTF-8. Om verktyget rapporterar att data är för komplexa, minska nästlingen eller antalet poster. Dela upp stora indata i mindre, fullständiga JSON-dokument i stället för att kapa mitt i ett objekt eller en array.

Varför ändras långa tal i ett annat program?

Det separata precisionsexemplet nedan innehåller 9007199254740993 och 0.10000000000000001. Den här formateraren bevarar talens text exakt med alla indrags- och sorteringsval. Formatera exact-numbers.json och jämför resultatet med exact-numbers-formatted.json i en texteditor. Ett program som importerar resultatet kan ändå avrunda tal, så kontrollera att det stöder den precision du behöver. En kod med inledande nolla, exempelvis 00123, måste vara en sträng inom citattecken i JSON.

Kan formatering återställa siffror som redan har avrundats?

Formatering kan inte återställa siffror som avrundats eller tagits bort innan texten nådde verktyget. Gå tillbaka till originalkällan och exportera det fullständiga värdet igen. Om värdet är en identifierare i stället för en mängd kan en sträng hjälpa mottagande program att behålla siffrorna.

Valfritt: jämför exemplet och referensresultaten

De här kodexemplen och nedladdningarna skapades från order-options.json med samma formaterare som på verktygssidan. De formaterade och kompakta referenserna har nyckelsortering avstängd; den sorterade referensen använder två blankstegs indrag med sortering på.

Originalexempel

{"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}

Två blanksteg; ursprunglig nyckelordning

{
  "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
}

Minimera; ursprunglig nyckelordning

{"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}

Två blanksteg; sorterade objektnycklar

{
  "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
}
ReferensfilInställningarByte
order-formatted.jsonTvå blanksteg; ursprunglig nyckelordning300
order-minified.jsonMinimera; ursprunglig nyckelordning193
order-sorted.jsonTvå blanksteg; sorterade objektnycklar300

Detta är faktiska textresultat, inte skärmbilder av gränssnittet. Koden kan radbrytas för att passa skärmen. Referensfilnamnen skiljer exemplen åt; verktyget laddar ned alla versioner som formatted.json.

Relaterade verktyg

Källor

RFC 8259 · JSON