Ohjelmointi

Mikä on JSON? Parempi muoto tietojenvaihtoon

JavaScript Object Notation on strukturoidun datan skeematon, tekstipohjainen esitys, joka perustuu avainarvopareihin ja järjestettyihin luetteloihin. Vaikka JSON on johdettu JavaScriptistä, sitä tuetaan joko natiivisti tai kirjastojen kautta useimmilla tärkeimmillä ohjelmointikielillä. JSONia käytetään yleisesti, mutta ei yksinomaan, tietojen vaihtamiseen web-asiakkaiden ja web-palvelinten välillä.

Viimeisten 15 vuoden aikana JSONista on tullut kaikkialla verkossa. Nykyään se on valintamuoto melkein jokaiselle julkisesti saatavilla olevalle verkkopalvelulle, ja sitä käytetään usein myös yksityisiin verkkopalveluihin.

JSON: n suosio on myös johtanut alkuperäiseen JSON-tukeen monissa tietokannoissa. Relaatiotietokannat, kuten PostgreSQL ja MySQL, tarjoavat nyt natiivin tuen JSON-tietojen tallentamiseen ja kyselyihin. NoSQL-tietokannat, kuten MongoDB ja Neo4j, tukevat myös JSONia, vaikka MongoDB käyttää kulissien takana hieman muunnettua, binääristä versiota JSON: sta.

Tässä artikkelissa tarkastelemme nopeasti JSONia ja keskustelemme siitä, mistä se tuli, sen eduista XML: ään nähden, sen haitoista, milloin sinun pitäisi käyttää sitä ja milloin sinun pitäisi harkita vaihtoehtoja. Mutta ensin sukelkaamme siihen, millainen JSON näyttää käytännössä.

JSON-esimerkki

Tässä on esimerkki JSON: iin koodatuista tiedoista:

{

"Etunimi": "Jonathan",

"Sukunimi": "Freeman",

“LoginCount”: 4,

“IsWriter”: totta,

"WorksWith": ["Spantree Technology Group", ""],

"Lemmikit": [

    {

"Nimi": "Lilly",

"Tyyppi": "pesukarhu"

    }

  ]

}

Yllä oleva rakenne määrittelee selvästi jotkut henkilön ominaisuudet. Se sisältää etu- ja sukunimen, kuinka monta kertaa henkilö on kirjautunut sisään, onko tämä henkilö kirjailija, luettelo yrityksistä, joissa henkilö työskentelee, ja luettelo henkilön lemmikkeistä (tässä tapauksessa vain yksi). Yllä olevan kaltainen rakenne voidaan siirtää palvelimelta verkkoselaimeen tai mobiilisovellukseen, joka suorittaa sitten jonkin toiminnon, kuten tietojen näyttämisen tai tallennuksen myöhempää käyttöä varten.

JSON on yleinen tietomuoto, jossa on minimaalinen määrä arvotyyppejä: merkkijonot, numerot, loogiset arvot, luettelot, objektit ja nolla. Vaikka merkintätapa on JavaScriptin osajoukko, nämä tyypit ovat edustettuina kaikilla tavallisilla ohjelmointikielillä, mikä tekee JSON: sta hyvän ehdokkaan siirtämään tietoja kielirajojen yli.

JSON-tiedostot

JSON-tiedot tallennetaan tiedostoihin, jotka päättyvät .json-laajennukseen. JSON: n ihmisen luettavissa olevan eetoksen mukaisesti nämä ovat yksinkertaisia ​​tekstitiedostoja, jotka voidaan helposti avata ja tutkia. Kuten SQLizer-blogi selittää, tämä on myös avain JSON: n laajempaan yhteentoimivuuteen, koska melkein jokainen nimeämäsi kieli voi lukea ja käsitellä pelkkää tekstiä sisältäviä tiedostoja, ja ne on helppo lähettää Internetin kautta.

Miksi minun pitäisi käyttää JSONia?

Ymmärtääksemme JSON: n hyödyllisyyden ja merkityksen meidän on ymmärrettävä hieman interaktiivisuuden historiasta verkossa.

2000-luvun alussa vuorovaikutteisuus verkossa alkoi muuttua. Tuolloin selain toimi pääasiassa tyhmänä asiakkaana tietojen näyttämisessä, ja palvelin teki kaiken kovan työn sisällön valmistelemiseksi näytettäväksi. Kun käyttäjä napsauttaa linkkiä tai painiketta selaimessa, pyyntö lähetetään palvelimelle, palvelin valmistaa tarvittavat tiedot HTML: ksi ja selain tekee HTML: n uudeksi sivuksi. Tämä malli oli hidas ja tehoton, ja se vaati selainta renderöimään kaiken uudelleen sivulla, vaikka vain osa sivusta olisi muuttunut.

Koska koko sivun uudelleenlataus oli kallista, web-kehittäjät etsivät uudempia tekniikoita parantamaan yleistä käyttökokemusta. Samaan aikaan Internet Explorer 5: ssä äskettäin käyttöön otettu kyky tehdä verkkopyyntöjä taustalla sivua näytettäessä oli osoittautunut toimivaksi lähestymistavaksi tietojen lataamiseen asteittain näyttöä varten. Sen sijaan, että lataat sivun koko sisällön, päivityspainikkeen napsauttaminen käynnistää verkkopyynnön, joka latautuu taustalle. Kun sisältö ladattiin, tietoja voitiin käsitellä, tallentaa ja näyttää sivulla JavaScriptiä käyttämällä selainten yleistä ohjelmointikieliä.

REST vs. SOAP: JSON-yhteys

Alun perin nämä tiedot siirrettiin XML-muodossa (katso esimerkki alla) käyttämällä SOAP-nimistä viestintäkäytäntöä (Simple Object Access Protocol). Mutta XML oli runsas ja vaikea hallita JavaScriptissä. Javascriptilla oli jo esineitä, jotka ovat tapa ilmaista tietoja kielellä, joten Douglas Crockford otti kyseisen lausekkeen osajoukon uuden tiedonsiirtomuodon erittelyksi ja kutsui sen JSONiksi. JSON oli paljon helpompi lukea ihmisille ja selaimet jäsentää.

00-luvun aikana toinen verkkopalveluteknologia, nimeltään Representational State Transfer, tai REST, alkoi ohittaa SOAP: n tietojen siirtämistä varten. Yksi REST-sovellusliittymien ohjelmoinnin suurista eduista on, että voit käyttää useita datamuotoja - ei vain XML: ää, vaan myös JSON: ää ja HTML: ää. Kun web-kehittäjät tulivat suosimaan JSONia XML: n sijaan, he myös suosivat REST: ää SOAP: n sijaan. Kuten Kostyantyn Kharchenko kirjoitti Svitla-blogiin, "REST: n menestys johtuu monin tavoin JSON-muodosta, koska sitä on helppo käyttää eri alustoilla."

Nykyään JSON on tosiasiallinen standardi tietojen vaihtamiseen verkko- ja mobiiliasiakkaiden sekä taustapalveluiden välillä.

JSON vs. XML

Kuten edellä todettiin, tärkein vaihtoehto JSON: lle on XML. XML on kuitenkin yhä harvinaisempi uusissa järjestelmissä, ja on helppo ymmärtää miksi. Alla on versio yllä näkemäsi datasta, tällä kertaa XML: ssä:

Jonathan

Freeman

  4

totta

Spantree Technology Group

Lilly

Pesukarhu

Sen lisäksi, että XML on tarkempi (tässä tapauksessa tarkalleen kaksinkertainen), XML tuo myös epäselvyyttä jäsennettäessä JavaScript-ystävälliseksi tietorakenteeksi. XML: n muuntaminen JavaScriptiobjektiksi voi viedä kymmenistä satoihin rivirivejä koodia ja edellyttää lopulta räätälöintiä jäsennettävän objektin perusteella. JSON: n muuntaminen JavaScript-objektiksi vie yhden koodirivin eikä vaadi ennakkotietoa jäsennettävästä objektista.

JSON: n rajoitukset

Vaikka JSON on suhteellisen tiivis, joustava datamuoto, jota on helppo käsitellä monilla ohjelmointikielillä, formaatilla on joitain haittoja. Tässä on viisi päärajoitusta:

  1. Ei kaavaa. Yhtäältä se tarkoittaa, että sinulla on täydellinen joustavuus edustaa tietoja millä tahansa haluamallasi tavalla. Toisaalta se tarkoittaa, että voit vahingossa luoda vääristyneitä tietoja erittäin helposti.
  2. Vain yksi numerotyyppi: IEEE-754 kaksitarkka liukulukumuoto. Se on melko suupala, mutta se tarkoittaa yksinkertaisesti sitä, että et voi hyödyntää monipuolisia ja vivahteikkaita numerotyyppejä, joita on saatavana monilla ohjelmointikielillä.
  3. Ei päivämäärätyyppiä. Tämä puute tarkoittaa, että kehittäjien on käytettävä päivämäärien merkkijonojen esityksiä, mikä johtaa muotoilueroihin, tai sen on edustettava päivämääriä millisekunteina aikakaudesta (1. tammikuuta 1970) lähtien.
  4. Ei kommentteja. Tämä tekee mahdottomaksi merkitä kenttiä riviin, mikä vaatii lisäasiakirjoja ja lisää väärinkäsitysten todennäköisyyttä.
  5. Sanallisuus. Vaikka JSON on vähemmän yksityiskohtainen kuin XML, se ei ole ytimekäs tiedonsiirtomuoto. Suurten volyymien tai erityiskäyttöön tarkoitettujen palveluiden osalta kannattaa käyttää tehokkaampia datamuotoja.

Milloin minun pitäisi käyttää JSONia?

Jos kirjoitat ohjelmistoa, joka on yhteydessä selaimen tai alkuperäisen mobiilisovelluksen kanssa, sinun tulee käyttää JSON-tiedostomuotoa. XML: n kaltaisen muodon käyttäminen on vanhentunut valinta ja punainen lippu käyttöliittymän ja mobiililahjakkuuksiin, jotka muuten haluaisit houkutella.

Palvelinten välisen viestinnän tapauksessa saatat olla parempi käyttää sarjaliitäntäkehystä, kuten Apache Avro tai Apache Thrift. JSON ei ole huono valinta täällä, ja se saattaa silti olla juuri sitä mitä tarvitset, mutta vastaus ei ole yhtä selkeä kuin verkko- ja mobiiliviestinnässä.

Jos käytät NoSQL-tietokantoja, olet melkein jumissa mitä tahansa tietokanta antaa sinulle. Relaatiotietokannoissa, jotka tukevat JSON-tyyppiä, hyvä nyrkkisääntö on käyttää sitä mahdollisimman vähän. Relaatiotietokannat on viritetty strukturoitua dataa varten, joka sopii tiettyyn skeemaan. Vaikka suurin osa tukee nyt joustavampaa dataa JSON-muodossa, voit odottaa suorituskykyosumaa kysyttäessä ominaisuuksia näiden JSON-objektien sisällä.

JSON on yleinen, tosiasiallinen muoto tietojen lähettämiseen verkkopalvelimien ja selainten sekä mobiilisovellusten välillä. Sen yksinkertainen muotoilu ja joustavuus tekevät siitä helppolukuisen ja ymmärrettävän ja useimmissa tapauksissa helposti manipuloitavan valitsemallasi ohjelmointikielellä. Tiukan skeeman puuttuminen mahdollistaa muodon joustavuuden, mutta joustavuus vaikeuttaa toisinaan JSONin lukemista ja kirjoittamista.

JSON-jäsennin

Sovelluksen koodin osaa, joka muuntaa JSON-muodossa tallennetut tiedot muotoon, jota sovellus voi käyttää, kutsutaan a jäsennin. Kuten odotat, JavaScript sisältää natiivin jäsentimen, JSON.parse () -menetelmän.

Saatat joutua tekemään vähän enemmän työtä työskennellessäsi JSONin kanssa voimakkaasti kirjoitetuilla kielillä, kuten Scala tai Elm, mutta JSON: n laaja käyttöönotto tarkoittaa, että on olemassa kirjastoja ja apuohjelmia, jotka auttavat sinua läpi kaikkien vaikeimpien osien.

Json.org-verkkosivusto sisältää kattavan luettelon koodikirjastoista, joita voit käyttää JSON-jäsentämiseen, luomiseen ja manipulointiin niin erilaisilla kielillä kuin Python, C # ja COBOL.

JSON-apuohjelmat

Jos haluat manipuloida tai tutkia JSON-koodattuja tietoja suoraan kirjoittamatta koodia itse, on useita online-apuohjelmia, jotka voivat auttaa sinua. Kaikki yllä oleviin linkitettyihin koodikirjastoihin sisältyvät ohjelmalliset vastineet, mutta voit leikata ja liittää JSON-koodin näihin selainpohjaisiin työkaluihin, jotta voit paremmin ymmärtää JSONia tai suorittaa nopean ja lianalyysin:

  • JSON-muotoilija: JSONLint muotoilee ja vahvistaa mielivaltaisen JSON-koodin.
  • JSON Viewer: Stack.hu -sivustolla on interaktiivinen puu, joka auttaa sinua ymmärtämään JSON-koodisi rakennetta.
  • JSON kaunistaja: Jos haluat "melko tulostaa" JSON-koodisi syntaksivärillä ja vastaavilla, Prettydiff voi auttaa sinua.
  • JSON-muunnin: Onko sinun siirrettävä tiedot nopeasti JSON-muodosta johonkin muuhun? Convertcsv.comissa on työkaluja, jotka voivat muuntaa JSONin CSV: ksi (joka voidaan sitten avata Excelissä) tai XML: ksi.

JSON-opetusohjelma

Oletko valmis sukeltamaan ja oppimaan lisää siitä, miten JSON toimii interaktiivisissa sovelluksissa? Mozilla Developer Networkilla on upea opetusohjelma, jonka avulla pääset alkuun JSON: n ja JavaScriptin kanssa. Jos olet valmis siirtymään muille kielille, tutustu oppaaseen JSON: n käytöstä Java: n (Baeldung), Pythonin (DataCamp) tai C #: n (Software Testing Help) avulla. Onnea!

Josh Fruhlinger kirjoitti tämän artikkelin.

$config[zx-auto] not found$config[zx-overlay] not found