JSON-muotoilija

Validoi, kaunista tai tiivistä JSON-dataa heti.

Mikä on JSON?

JSON (JavaScript Object Notation) on käytetyin muoto tietojen välittämiseen verkkosovellusten ja rajapintojen välillä. Se esittää jäsenneltyä tietoa ihmisen luettavana tekstinä avain–arvo-pareina, taulukoina ja sisäkkäisinä olioina. Yksinkertainen JSON-olio voi näyttää tältä: {"nimi": "Aino", "ika": 30, "aktiivinen": true}. JSON ei ole sidottu mihinkään kieleen, sillä lähes kaikki ohjelmointikielet tukevat sitä, ja se on pitkälti korvannut XML:n verkkorajapintojen vastausten, asetustiedostojen ja tietojen tallennuksen vakiomuotona.

Muodolla on tiukat syntaksisäännöt: avainten on oltava lainausmerkeissä olevia merkkijonoja, ja arvot voivat olla merkkijonoja (lainausmerkeissä), lukuja, totuusarvoja (true tai false), null, taulukoita (hakasulkeissa) tai olioita (aaltosulkeissa). Yleisiä virheitä ovat yksinkertaisten lainausmerkkien käyttö kaksinkertaisten sijaan, ylimääräinen pilkku olion tai taulukon viimeisen kohdan jälkeen ja erikoismerkkien jättäminen ilman koodinvaihtomerkkiä merkkijonoissa.

Muotoilu vai tiivistys: milloin kumpaakin

Muotoilu lisää JSONiin sisennykset ja rivinvaihdot, jotta sitä on helppo lukea. Rajapintojen vastaukset ja tiivistetyt JSON-tiedostot ovat yleensä yksi pitkä rivi ilman välilyöntejä, jota on mahdoton lukea silmällä. Muotoilu järjestää tiedot sisennetyksi rakenteeksi, jossa jokainen avain–arvo-pari on omalla rivillään ja sisäkkäiset oliot erottuvat selvästi. Käytä muotoilua aina, kun haluat lukea, tarkastaa tai korjata JSON-tietoja.

Tiivistys poistaa kaikki tarpeettomat välilyönnit, sarkaimet ja rivinvaihdot, jotka eivät kuulu merkkijonoarvoihin, ja tuottaa mahdollisimman lyhyen esityksen. Tämä pienentää tiedostokokoa, millä on merkitystä rajapinnoissa ja verkkosovelluksissa, joissa JSON siirretään verkon yli. Jo 20 %:n pienennys JSON-sisällön koossa voi suuressa mittakaavassa nopeuttaa sivujen latautumista ja rajapintojen vastausaikoja merkittävästi. Käytä tiivistystä, kun valmistelet JSONia tuotantokäyttöön.

Miten JSONin tarkistus toimii

Tarkistin yrittää jäsentää JSONin selaimen omalla JSON.parse()-funktiolla, samalla jäsentimellä, jota kaikki JavaScript-sovellukset käyttävät. Jos jäsennys onnistuu, JSON on kelvollista. Jos se epäonnistuu, virheilmoitus kertoo, mikä meni vikaan ja missä. Työkalu menee pelkkää hyväksytty/hylätty-tulosta pidemmälle: se poimii virheilmoituksesta merkin sijainnin ja muuntaa sen rivi- ja sarakenumeroksi, jotta pääset suoraan ongelmakohtaan.

Yleisiä JSON-virheitä ovat puuttuvat tai ylimääräiset pilkut kohtien välissä, yksinkertaiset lainausmerkit merkkijonoissa tai avaimissa, pilkku olion tai taulukon viimeisen kohdan jälkeen (sallittu JavaScriptissä mutta ei JSONissa), koodinvaihtamattomat erikoismerkit merkkijonoissa (kenoviiva, lainausmerkki, sarkain ja rivinvaihto on koodattava) ja kommentit (JSON ei tue kommentteja, joten //, /* ja # ovat kaikki virheellisiä).

Käyttökohteita

Rajapintojen vianetsintä: kun testaat REST-rajapintoja esimerkiksi Postmanilla, curlilla tai selaimella, vastaukset palautetaan usein tiivistettynä JSONina. Liitä ne tänne, niin näet rakenteen selvästi. Asetustiedostot: monet sovellukset käyttävät JSONia asetuksissa (package.json, tsconfig.json, .prettierrc jne.). Johdonmukainen muotoilu helpottaa ylläpitoa ja tekee versionhallinnan muutoksista helpommin luettavia. Data-analyysi: ennen kuin tuot JSON-tietoja esimerkiksi Pythoniin (pandas), R:ään tai tietokantaan, rakenteen tarkistaminen auttaa löytämään odottamattomat kentät ja muotoiluvirheet. JSONin opettelu: JSONiin tutustuvalle kehittäjälle omien tietojen näkeminen muotoiltuna auttaa ymmärtämään rakennetta ja löytämään käsin kirjoitetun JSONin virheet.

Usein kysytyt kysymykset

Onko tietojeni liittäminen tänne turvallista?

On. Kaikki käsittely tapahtuu kokonaan selaimessasi JavaScriptillä, eikä JSONiasi koskaan lähetetä palvelimelle. Voit varmistaa tämän katkaisemalla internetyhteyden ennen liittämistä ja muotoilua: työkalu toimii täysin ilman yhteyttä. Siksi sitä on turvallista käyttää myös arkaluonteisten tietojen, kuten sisäisten rajapintavastausten tai tunnuksia sisältävien asetusten kanssa.

Miksi JSON ei tue kommentteja?

JSONin suunnitellut Douglas Crockford on kertonut jättäneensä kommentit tarkoituksella pois, jotta niitä ei käytettäisi jäsennysohjeina, mikä on muissa muodoissa johtanut yhteensopivuusongelmiin. JSON on tarkoitettu siistiksi ja minimaaliseksi tiedonsiirtomuodoksi, ei asetusmuodoksi. Asetustiedostoihin, joissa kommenteista on hyötyä, sopivat paremmin esimerkiksi JSONC (JSON with Comments, jota VS Code käyttää) tai YAML.

Mitä eroa on JSONilla ja JavaScript-olioilla?

JavaScriptin olioliteraalit muistuttavat JSONia, mutta niissä on tärkeitä eroja: JavaScript-olioissa avaimet voivat olla ilman lainausmerkkejä, merkkijonot yksinkertaisissa lainausmerkeissä, viimeisen kohdan jälkeen voi olla pilkku, niissä voi olla kommentteja ja jopa funktioita arvoina. JSON vaatii kaikkien avainten ja merkkijonojen olevan kaksinkertaisissa lainausmerkeissä, ei salli viimeistä pilkkua eikä kommentteja ja sallii vain tietoarvoja (ei funktioita tai undefined-arvoa).

Miten käsittelen hyvin suuria JSON-tiedostoja?

Hyvin suurilla JSON-tiedostoilla (useita megatavuja) selainpohjaiset työkalut voivat olla hitaita. Yli 1 Mt:n tiedostoille kannattaa käyttää komentorivityökalua, kuten Pythonin json.tool-moduulia (python3 -m json.tool input.json) tai jq-ohjelmaa, jotka käsittelevät suuria tiedostoja selaimen JavaScriptiä tehokkaammin.

JSON yleisissä ohjelmointikielissä

JavaScript/Node.js: JSON.parse(merkkijono) muuntaa JSON-merkkijonon olioksi ja JSON.stringify(olio, null, 2) muuntaa olion muotoilluksi JSON-merkkijonoksi kahden välilyönnin sisennyksellä. Python: json.loads(merkkijono) jäsentää JSONin ja json.dumps(olio, indent=2) muotoilee sen. Java: kirjastot kuten Jackson tai Gson hoitavat JSONin sarjallistamisen. PHP: json_decode() ja json_encode() ovat sisäänrakennettuja funktioita. C#: System.Text.Json tai suosittu Newtonsoft.Json-kirjasto. JSON-muodon ymmärtäminen ei riipu kielestä, sillä samat säännöt pätevät kaikkialla.