Kaikki oppaat

Muotoile ja validoi JSON

Tee JSONista helpommin luettavaa, tarkista syntaksi tai luo tiivis versio. Tässä oppaassa käydään läpi sisennys, avainten lajittelu ja tuloksen tallentaminen.

Kokeile esimerkkitiedostoa

Lataa order-options.json, kuvitteellinen kahden tuotteen tilaus, jonka kenttien nimet ovat englanniksi. customer-olio kokoaa nimen ja kaupungin; items-taulukossa on ensin CARD-02 ja sitten BOX-01. Esimerkissä on lainausmerkeillä rajattua tekstiä, numeerisia määriä ja hintoja, totuusarvo true sekä null tyhjälle toimitushuomautukselle. Kentät ovat tarkoituksella lajittelematta, jotta lajittelun vaikutus näkyy.

Vaihe vaiheelta

  1. Avaa JSON-muotoilu ja validointi. Avaa mukana toimitettu order-options.json kohdasta Tiedosto tai liitä tiedoston sisältö kohtaan Syötetyt arvot.
  2. Aseta Sisennys arvoon 2, jolloin jokaisella tasolla käytetään kahta välilyöntiä. Jätä Lajittele objektin avaimet valitsematta ensimmäisellä käsittelykerralla.
  3. Valitse Käsittele syöte. Työkalu tarkistaa JSON-syntaksin ennen tuloksen näyttämistä. Jos saat virheilmoituksen, paikanna ongelma rivin ja sarakkeen avulla, korjaa syöte ja yritä uudelleen.
  4. Lue tulos. customer-olion ja kahden tuotteen pitäisi olla helposti seurattavia, kun kentät tai luettelon alkiot ovat omilla riveillään. Kentät säilyttävät esimerkin järjestyksen, kun lajittelu ei ole käytössä.
  5. Tallenna formatted.json valitsemalla Lataa tulos. Voit myös siirtää tuloksen toiseen editoriin valitsemalla Kopioi teksti.
  6. Avaa ladattu tiedosto tekstieditorissa ja vertaa sitä esimerkkiin alla olevien tarkistusten avulla. Kokeile sitten muita sisennys- ja lajitteluasetuksia ja valitse Käsittele syöte uudelleen jokaisen muutoksen jälkeen.

Esimerkkejä ennen ja jälkeen

Nämä lyhyet esimerkit näyttävät order-options.json-tiedoston customer-olion pienenä JSON-asiakirjana. Vertaa samaa nimeä ja kaupunkia ennen jokaista asetusta ja sen jälkeen. Lopun valinnainen vertailuosio näyttää koko tilauksen.

Tee tiiviistä JSONista helpommin luettavaa

Aseta Sisennys arvoon 2, jätä Lajittele objektin avaimet valitsematta ja valitse Käsittele syöte. Tulos saa rivinvaihdot ja kaksi välilyöntiä tasoa kohden, ja kentät säilyttävät alkuperäisen järjestyksensä.

Ennen: tiivis syöte

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

Jälkeen: kahden välilyönnin sisennys

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

Lajittele olion avaimet

Pidä Sisennys arvossa 2, valitse Lajittele objektin avaimet ja sitten Käsittele syöte. customer-oliossa city tulee nyt ennen name-avainta. Molemmat arvot säilyvät ennallaan.

Ennen: alkuperäinen avainjärjestys

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

Jälkeen: lajitellut olion avaimet

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

Tiivistä JSON

Valitse Tiivistä kohdasta Sisennys, jätä Lajittele objektin avaimet valitsematta ja valitse Käsittele syöte. Muotoilun välilyönnit ja rivinvaihdot poistuvat; teksti ja kenttien järjestys säilyvät.

Ennen: kahden välilyönnin sisennys

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

Jälkeen: Tiivistä

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

Valitse sisennys

ValintaVaikutus
2Käyttää kahta välilyöntiä kullakin sisäkkäisyystasolla. Tätä asetusta käytetään pääohjeessa.
4Käyttää neljää välilyöntiä kullakin sisäkkäisyystasolla, jolloin sisäkkäiset oliot ja taulukot erottuvat selvemmin.
↹Käyttää sarkainta kullakin sisäkkäisyystasolla. Sarkaimen näkyvä leveys riippuu tekstieditorista.
TiivistäPoistaa muotoilun välilyönnit ja rivinvaihdot. Lainausmerkkien sisällä olevat välilyönnit säilyvät osana tekstiä. Valitse tämä tiivistä tulosta varten ja valitse sitten Käsittele syöte.

Syötteen tai asetuksen muuttaminen tyhjentää edellisen tuloksen. Luo tulos uusilla asetuksilla valitsemalla Käsittele syöte uudelleen. Työkalu lukee syötekentän joka kerta; se ei siirrä edellistä tulosta automaattisesti takaisin syötteeksi.

Lajittele olion avaimet

Jätä Lajittele objektin avaimet valitsematta säilyttääksesi jokaisen olion alkuperäisen kenttäjärjestyksen. Valittuna se lajittelee avaimet koko asiakirjassa kirjainkoon huomioivaan tekstijärjestykseen, myös taulukoiden sisällä olevissa olioissa. Taulukon alkiot säilyttävät alkuperäisen järjestyksensä.

  1. Pidä Sisennys arvossa 2, valitse Lajittele objektin avaimet ja sitten Käsittele syöte.
  2. Ylimmän tason avaimet ovat nyt customer, deliveryNote, items, order ja paid. customer-oliossa city tulee ennen name-avainta. Kussakin tuotteessa price tulee ennen quantity- ja sku-avaimia.
  3. items-taulukossa on yhä ensin CARD-02 ja sitten BOX-01. Avainten lajittelu ei lajittele tuotteita sku- tai price-arvon mukaan.

Kopioi, lataa ja aloita uudelleen

ValintaVaikutus
Kopioi tekstiKopioi nykyisen tuloksen tekstinä. Jos kopiointi ei ole käytettävissä, työkalu valitsee tuloksen, jotta voit kopioida sen käsin.
Lataa tulosTallentaa nykyisen tuloksen nimellä formatted.json. Tätä tiedostonimeä käytetään muotoilluille, tiivistetyille ja lajitelluille tuloksille, joten nimeä tiedostot uudelleen, jos haluat säilyttää useita versioita.
Tulosta tuloksetAvaa selaimen tulostusikkunan tulostekstille.
Lataa esimerkkiKorvaa syötteen työkalun omalla esimerkillä ja käsittelee sen nykyisillä asetuksilla. Tämä esimerkki on eri kuin oppaan order-options.json.
Poista kaikkiTyhjentää syötteen, valitun tiedoston ja tuloksen. Sisennys- ja lajitteluasetukset säilyvät valittuina.

Tarkista ladattu JSON

  • Avaa formatted.json tekstieditorissa. Varmista, että tilaus on ORD-1042, asiakas on Zoë Bergenistä ja tuotteita on kaksi.
  • Tarkista arvot ja tyypit: quantity on numero 2 ja sitten 1, hinnat säilyttävät muodot 19.50 ja 5.00, paid on totuusarvo true ilman lainausmerkkejä ja deliveryNote on null ilman lainausmerkkejä. Lainausmerkeillä rajatut nimet ja tuotekoodit säilyvät merkkijonoina.
  • Kun olet kokeillut Lajittele objektin avaimet-asetusta, varmista edellä kuvattu kenttäjärjestys sekä se, että CARD-02 on yhä ennen BOX-01-tuotetta items-taulukossa.
  • Kokeile Tiivistä ja Käsittele syöte. Liitä tulos takaisin kohtaan Syötetyt arvot, aseta Sisennys arvoon 2 ja valitse Käsittele syöte uudelleen. Vertaa arvoja ja tuotteiden järjestystä alkuperäiseen esimerkkiin; muotoiluasetusten tulee säilyttää ne.

Kysymykset ja ongelmanratkaisu

Miksi JSON ilmoitetaan virheelliseksi?

Tarkista ilmoitettu rivi ja sarake sekä juuri kyseistä kohtaa edeltävä kenttä. Avaimet ja teksti tarvitsevat kaksoislainausmerkit; kentät tarvitsevat pilkut ja kaksoispisteet; hakasulut ja aaltosulut on suljettava. Korjaa syöte ja valitse Käsittele syöte uudelleen. Validointi tarkistaa JSON-syntaksin, joten kelvollisesta tuloksesta voi silti puuttua sovelluksesi vaatimia kenttiä.

Voinko käyttää kommentteja tai viimeistä pilkkua?

Poista kommentit ja pilkut, jotka ovat juuri ennen sulkevaa hakasulkua tai aaltosulkua. Ne eivät ole sallittuja JSONissa. Muotoilutyökalu vaatii kelvollisen syötteen eikä korjaa sitä automaattisesti.

Mitä toistuvien avainten varoitus tarkoittaa?

Viesti ”Toistuvat objektin avaimet säilytettiin. Jotkin lukijat hylkäävät toistuvat avaimet.” tarkoittaa, että sama avain esiintyy useita kertoja samassa oliossa. Muotoilutyökalu säilyttää nämä merkinnät ja varoittaa. Tarkista lähde, valitse tarkoitettu arvo ja poista ylimääräinen merkintä; toinen sovellus voi säilyttää niistä vain yhden.

Miksi tiedostoni ei avaudu tai käsittely ei onnistu?

Syötteen enimmäiskoko on 2 MiB eli 2 097 152 tavua. Paikallisten tekstitiedostojen on oltava UTF-8-muodossa. Jos työkalu ilmoittaa tiedot liian monimutkaisiksi, vähennä sisäkkäisyyttä tai merkintöjen määrää. Jaa suuri syöte pienemmiksi kokonaisiksi JSON-asiakirjoiksi sen sijaan, että katkaisisit olion tai taulukon keskeltä.

Miksi pitkät numerot muuttuvat toisessa sovelluksessa?

Alla oleva erillinen tarkkuusesimerkki sisältää luvut 9007199254740993 ja 0.10000000000000001. Tämä muotoilutyökalu säilyttää numeroiden tekstin täsmälleen kaikilla sisennys- ja lajitteluasetuksilla. Muotoile exact-numbers.json ja vertaa tulosta tiedostoon exact-numbers-formatted.json tekstieditorissa. Tuloksen tuova sovellus voi silti pyöristää numeroita, joten varmista, että se tukee tarvitsemaasi tarkkuutta. Etunollallinen koodi, kuten 00123, on esitettävä JSONissa lainausmerkeillä rajattuna merkkijonona.

Voiko muotoilu palauttaa jo pyöristettyjä numeroita?

Muotoilu ei voi palauttaa numeroita, jotka pyöristettiin tai poistettiin ennen tekstin saapumista työkaluun. Palaa alkuperäiseen lähteeseen ja vie koko arvo uudelleen. Jos arvo on tunniste eikä määrä, merkkijono voi auttaa vastaanottavia sovelluksia säilyttämään sen numerot.

Valinnainen: vertaa esimerkkiä ja viitetuloksia

Nämä koodiesimerkit ja ladattavat tiedostot tuotettiin order-options.json-tiedostosta samalla muotoilutyökalulla kuin työkalusivulla. Muotoilluissa ja tiivistetyissä viitetiedostoissa avainten lajittelu on pois käytöstä; lajiteltu viite käyttää kahden välilyönnin sisennystä ja lajittelua.

Alkuperäinen esimerkki

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

Kaksi välilyöntiä; alkuperäinen avainjärjestys

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

Tiivistä; alkuperäinen avainjärjestys

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

Kaksi välilyöntiä; lajitellut olion avaimet

{
  "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
}
ViitetiedostoAsetuksetTavut
order-formatted.jsonKaksi välilyöntiä; alkuperäinen avainjärjestys300
order-minified.jsonTiivistä; alkuperäinen avainjärjestys193
order-sorted.jsonKaksi välilyöntiä; lajitellut olion avaimet300

Nämä ovat todellisia tekstituloksia, eivät käyttöliittymän kuvakaappauksia. Koodi voi rivittyä näytön mukaan. Viitetiedostojen nimet erottavat esimerkit; työkalu lataa kaikki versiot nimellä formatted.json.

Aiheeseen liittyvät työkalut

Lähteet

RFC 8259 · JSON