JSON-opetusohjelma: Opi yksinkertaisen esimerkin avulla

โšก ร„lykรคs yhteenveto

JSON, lyhenne sanoista JavaScript Object Notation on kevyt, ihmisen luettava muoto strukturoidun datan tallentamiseen ja vaihtamiseen palvelimien ja sovellusten vรคlillรค. Tรคmรค resurssi selittรครค sen syntaksin, tietotyypit, reaalimaailman sovellukset ja erot, jotka erottavat sen XML:stรค.

  • ๐Ÿ”‘ Ydinmรครคritelmรค: JSON tallentaa tiedot nimi/arvo-pareina ja jรคrjestettyinรค taulukoina kรคyttรคen aaltosulkeita objekteille ja hakasulkeita taulukoille.
  • ๐Ÿงฉ Tuetut tietotyypit: Hallitse kuusi JSON-tietotyyppiรค โ€“ merkkijono, numero, totuusarvo, null, objekti ja taulukko โ€“ mallintaaksesi lรคhes mitรค tahansa rakennetta.
  • โšก Miksi tiimit ottavat sen kรคyttรถรถn: JSON jรคsentรครค natiivisti JavaSkripti, toimii kaikissa selaimissa ja integroituu useimpiin taustateknologioihin ja REST-rajapintoihin.
  • ๐Ÿ”„ JSON verrattuna XML:รครคn: XML:รครคn verrattuna JSON on tyypitetty, helpommin luettava ja nopeampi sarjoittaa, vaikka siltรค puuttuukin merkintรคkielen nรคyttรถominaisuudet.
  • ๐Ÿ› ๏ธ Kรคytรคnnรถn tyรถkalut: Validoi, muotoile ja pienennรค koodia apuohjelmilla, kuten JSONLint, JSON Editor Online ja JSON Formatter, ennen kรคyttรถรถnottoa.

JSON opetusohjelma

Mikรค on JSON?

JSON on tiedostomuoto, jota kรคytetรครคn tietojen tallentamiseen jรคrjestelmรคllisesti ja helposti saatavilla olevalla tavalla. Sen tรคysi muoto on JavaScript Object Notation. Se tarjoaa ihmisen luettavissa olevan kokoelman tietoja, joita voidaan kรคyttรครค loogisesti. Sen kirjoitetun ohjelmointikoodin tiedostopรครคte on .json. JSONin Internet-mediatyyppi on application/json, ja sen yhtenรคinen tyyppitunniste on public.json.

Nyt kun mรครคritelmรค on selvรค, seuraavassa osiossa selitetรครคn, miksi kehittรคjรคt valitsevat JSONin muiden datamuotojen sijaan.

Miksi kรคyttรครค JSONia?

Tรคssรค on JSONin kรคytรถn tรคrkeรคt edut/edut:

  • Tarjoa tukea kaikille selaimille
  • Helppo lukea ja kirjoittaa
  • Suoraviivainen syntaksi
  • Voit jรคsentรครค natiivisti JavaKomentosarja eval()-funktiolla
  • Helppo luoda ja kรคsitellรค
  • Kaikki suuret tukevat JavaKรคsikirjoituskehykset
  • Useimmat taustateknologiat tukevat
  • JSON tunnistaa alkuperรคisesti JavaKรคsikirjoitus
  • Sen avulla voit transmit ja sarjoittaa strukturoitua dataa verkkoyhteyden avulla.
  • Voit kรคyttรครค sitรค nykyaikaisten ohjelmointikielien kanssa.
  • JSON on tekstiรค, joka voidaan muuntaa mihin tahansa objektiin JavaKomentoi JSON:iin ja lรคhetรค tรคmรค JSON palvelimelle.

JSONin historia

JSONin historia
JSON opetusohjelma

Tรคssรค on tรคrkeitรค maamerkkejรค, jotka muodostavat JSONin historian:

  • Douglas Crockford mรครคritteli JSON-muodon 2000-luvun alussa.
  • Virallinen verkkosivusto avattiin vuonna 2002.
  • Joulukuussa 2005 Yahoo! alkaa tarjota joitakin verkkopalveluitaan JSON-muodossa.
  • JSONista tuli kansainvรคlinen ECMA-standardi vuonna 2013.
  • Uusin JSON-muotostandardi julkaistiin vuonna 2017.

Tรคmรคn aikajanan lisรคksi JSON tarjoaa myรถs joukon kรคytรคnnรถn ominaisuuksia, jotka selittรคvรคt sen kestรคvรคn suosion.

JSONin ominaisuudet

Helppo kรคyttรครค โ€“ JSON API tarjoaa korkean tason julkisivun, jonka avulla voit yksinkertaistaa yleisesti kรคytettyjรค kรคyttรถtapauksia.

Suorituskyky โ€“ JSON on melko nopea, koska se kuluttaa hyvin vรคhemmรคn muistitilaa, mikรค sopii erityisen hyvin suurille objektikaavioille tai jรคrjestelmille.

Ilmainen tyรถkalu - JSON-kirjasto on avoimen lรคhdekoodin ja ilmainen kรคyttรถ.

Ei vaadi kartan luomistaping โ€“ Jackson API tarjoaa oletuskartanping useiden objektien sarjoittamiseksi.

Puhdista JSON โ€“ Luo puhtaan ja yhteensopivan JSON-tuloksen, joka on helppolukuinen.

riippuvuus โ€“ JSON-kirjasto ei vaadi muita kirjastoja kรคsittelyyn.

JSON-syntaksin sรครคnnรถt

JSON-syntaksin sรครคnnรถt ovat:

  • Tietojen tulee olla nimi/arvo-pareina
  • Tiedot on erotettava pilkuilla
  • Kihara olkaimet pitรคisi pitรครค esineitรค
  • Hakasulkeet pitรคvรคt taulukoita

Tietotyypit JSONissa

Kun syntaksisรครคnnรถt on mรครคritetty, seuraavassa taulukossa luetellaan JSONissa kรคytetyt tรคrkeรคt tietotyypit:

Tietotyyppi Tuotetiedot
numero Se sisรคltรครค reaaliluvun, kokonaisluvun tai kelluvan luvun
jono Se koostuu mistรค tahansa tekstistรค tai Unicodesta, jossa on kaksoislainaus ja kenoviiva
boolean Boolen tietotyyppi edustaa joko True tai False arvoja
Null Null-arvo tarkoittaa, ettรค liittyvรคllรค muuttujalla ei ole arvoa
objekti Se on kokoelma avainarvopareja, jotka on erotettu aina pilkulla ja suljettu hakasulkeisiin.
Ryhmรค Se on jรคrjestetty jรคrjestys eroteltujen arvojen sarja.

numero

  • Numero on kaksinkertainen tarkkuus liukulukumuoto, joka riippuu sen toteutustavasta.
  • JSONissa et voi kรคyttรครค heksadesimaali- ja oktaalimuotoja.

Seuraava taulukko nรคyttรครค numerotyypit:

Tyyppi Tuotetiedot
Kokonaisluku Numerot 1-9 ja 0. Sekรค positiivisia ettรค negatiivisia lukuja.
jae Murtoluvut kuten 3
Eksponentti Eksponentti kuten e, e+

Syntaksi:

var json-object-name = { string : number_value,......}

Esimerkiksi:

var obj = {salary: 2600}

jono

Se on sarja lainausmerkeissรค olevia Unicode-merkkejรค, joissa on kenoviiva (esca).ping.

Seuraava taulukko nรคyttรครค eri merkkijonotyypit:

Tyyppi Tuotetiedot
* Kรคytรค lainausmerkeissรค typing
/ Kรคytรค solidukseen
\ Kรคytรค kรครคnteiseen solidukseen
B Kรคytรค lisรคtรคksesi askelpalauttimen
F Rehusta
N Luodaksesi uuden rivin
R Kรคytรค vaunun palautukseen
T Vaakavรคlilehden nรคyttรคminen
U Heksadesimaalilukuja

Syntaksi:

var json-object-name = { string : "string value",โ€ฆ..}

Esimerkiksi:

var obj = {name: 'Andy'}

boolean

Se tallentaa vain oikeita tai vรครคriรค arvoja.

Syntaksi:

var json-object-name = {string : true/false, โ€ฆ..}

Esimerkiksi:

var obj = {active: 'true'}

Ryhmรค

  • Se on jรคrjestetty arvokokoelma.
  • Sinun tulee kรคyttรครค taulukkoa, kun avainten nimet ovat perรคkkรคisiรค kokonaislukuja.
  • Se tulee sulkea hakasulkeisiin, jotka tulee erottaa ',' (pilkulla)

Syntaksi:

[value, .......]

Esimerkiksi:

Useita objekteja sisรคltรคvรคn taulukon nรคyttรคminen:

{
   "eBooks":[
      {
         "language":"Pascal",
         "edition":"third"
      },
      {
         "language":"Python",
         "edition":"four"
      },
      {
         "language":"SQL",
         "edition":"second"
      }
   ]
}

JSON-objekti

A JSON-objekti on JSON-kokonaisuus, joka on suljettu hakasulkeisiin. Se kirjoitetaan jรคrjestรคmรคttรถmรครคn nimi- ja arvoparien joukkoon, jossa nimen perรคssรค tulee olla ":" (kaksoispiste), ja nimi/arvo-parit on erotettava toisistaan โ€‹โ€‹"," (pilkku) -merkillรค. Sitรค voidaan kรคyttรครค, kun avainten nimet ovat mielivaltaisia โ€‹โ€‹merkkijonoja.

Syntaksi:

{ string :  value, โ€ฆ.. }

Esimerkiksi:

{
"id": 110,
"language": "Python",
"price": 1900,
}

vรคlilyรถnti

Voit lisรคtรค vรคlilyรถnnin merkkiparin vรคliin.

Esimerkiksi:

Syntaksi:

{string:"    ",โ€ฆ.}

Esimerkiksi:

var a = " Alex"; var b = "Steve";

Esimerkki JSONista

Annettu koodiesimerkki mรครคrittรครค, kuinka JSON:ia kรคytetรครคn tallentamaan liittyviรค tietoja ohjelmointikirjoja sekรค painos ja tekijรคn nimi.

{
   "book":[
      {
         "id":"444",
         "language":"C",
         "edition":"First",
         "author":"Dennis Ritchie "
      },
      {
         "id":"555",
         "language":"C++",
         "edition":"second",
         "author":" Bjarne Stroustrup "
      }
   ]
}

Ymmรคrtรครค JSON-muodon toisen JSON-tiedostoesimerkin avulla. Tรคssรค JSON mรครคrittรครค opiskelijan etunimen, sukunimen ja tunnuksen.

{
  "student": [

     {
        "id":"01",
        "name": "Tom",
        "lastname": "Price"
     },

     {
        "id":"02",
        "name": "Nick",
        "lastname": "Thameson"
     }
  ]
}

JSON-sovellus

Tรคssรค on joitain yleisiรค JSON-sovelluksia:

  • Auttaa siirtรคmรครคn tietoja palvelimelta
  • JSON-tiedostomuodon esimerkki auttaa transmit ja sarjoittaa kaikenlaisia โ€‹โ€‹strukturoituja tietoja.
  • Voit suorittaa asynkronisia datapuheluita ilman, ettรค sinun tarvitsee pรคivittรครค sivua
  • Auttaa sinua transmit dataa palvelimen ja web-sovellusten vรคlillรค.
  • Sitรค kรคytetรครคn laajalti JavaSkriptipohjainen sovellus, joka sisรคltรครค selainlaajennuksen ja verkkosivustot.
  • Sinรค pystyt transmit dataa palvelimen ja web-sovelluksen vรคlillรค JSON-menetelmรคllรค.
  • Voimme kรคyttรครค JSON:ia nykyaikaisten ohjelmointikielien kanssa.
  • Sitรค kรคytetรครคn kirjoittamiseen JavaSkriptipohjaiset sovellukset, jotka sisรคltรคvรคt selaimen lisรคosia.
  • Verkkopalvelut ja Restful API:t kรคyttรคvรคt JSON-muotoa julkisten tietojen hankkimiseen.

Koska JSONia kรคytetรครคn niin laajalti, sitรค verrataan usein XML:รครคn, muotoon, jonka se usein korvaa.

JSON vs. XML

Tรคssรค on tรคrkein ero JSON:n ja XML:n vรคlillรค

JSON XML
JSON-objektilla on tyyppi XML data on tyypitรถntรค
JSON-tyypit: merkkijono, numero, taulukko, looginen Kaikkien XML-tietojen tulee olla merkkijonoja
Tiedot ovat helposti kรคytettรคvissรค JSON-objekteina XML-tiedot on jรคsennettรคvรค.
JSON-tiedostot ovat ihmisten luettavampia. XML-tiedostot ovat vรคhemmรคn ihmisen luettavissa.
Useimmat selaimet tukevat JSON:ia. Selainten vรคlinen XML-jรคsennys voi olla hankalaa
JSONilla ei ole nรคyttรถominaisuuksia. XML tarjoaa mahdollisuuden nรคyttรครค tietoja, koska se on merkintรคkieli.
Arvon saaminen on helppoa Arvon saaminen on vaikeaa
Monet Ajax-tyรถkalut tukevat Ajax-tyรถkalupakki ei tue tรคysin
Tรคysin automatisoitu tapa sarjoittaa/serialisoida JavaSkripti. Kehittรคjien on kirjoitettava JavaKomentosarjakoodi XML:n sarjoittamiseksi/sarjan poistamiseksi
Alkuperรคinen tuki objektille. Objekti on ilmaistava konventionaalisesti โ€“ enimmรคkseen unohtuu attribuuttien ja elementtien kรคyttรถ.

JSON-esimerkki

Alla on yksinkertainen JSON-esimerkki:

{
  "student": [

     {
        "id":"01",
        "name": "Tom",
        "lastname": "Price"
     },

     {
        "id":"02",
        "name": "Nick",
        "lastname": "Thameson"
     }
  ]
}

XML-esimerkki

<?xml version="1.0" encoding="UTF-8" ?>
<root>
	<student>
		<id>01</id>
		<name>Tom</name>
		<lastname>Price</lastname>
	</student>
	<student>
		<id>02</id>
		<name>Nick</name>
		<lastname>Thameson</lastname>
	</student>
</root>

Mikรค ei ole JSON?

  • Esimerkki JSON-datatiedostosta ei ole asiakirjamuoto.
  • Se ei ole merkintรคkieli.
  • JSON ei tarjoa yleistรค serialisointimuotoa.
  • Se ei ole toistuvia tai syklisiรค rakenteita.
  • Se ei myรถskรครคn ole nรคkymรคtรถn rakenne.

JSONin haitat

Tรคssรค on muutamia JSONin etuja:

  • Ei nimitilatukea, joten laajennettavuus on huono
  • rajallinen kehitystyรถkalut tuki
  • Ei tukea muodolliselle kieliopin mรครคritelmรคlle

Suositut JSON-tyรถkalut (laajennukset)

Tรคssรค on tรคrkeitรค JSON-tyรถkaluja:

JSONLint:

JSONLint on avoimen lรคhdekoodin projekti, jota kรคytetรครคn JSON-koodin validoijana ja uudelleenmuotoilijana. Se on kevyt tiedonsiirtoformaatti. Voit kopioida ja liittรครค, kirjoittaa suoraan tai syรถttรครค URL JSON-validointityรถkalussa JSON-koodisi validoimiseksi.

Linkki: https://jsonlint.com

JSON-editori verkossa:

JSON Editor Online on hyรถdyllinen verkkopohjainen tyรถkalu. Sen avulla voit muokata, tarkastella ja muotoilla JSON. Se nรคyttรครค tietosi vierekkรคin selkeรคnรค, muokattavana koodieditori ohjelmisto.

Linkki: https://jsoneditoronline.org/

JSON Minifier Tool:

Se on tyรถkalu, jonka avulla voit poistaa vรคlilyรถnnit ja antaa JSON-koodin, joka vie vรคhiten tilaa.

Linkki: https://www.browserling.com/tools/json-minify

JSON-XML-muunnin:

JSON-XML-muunnin on yksinkertainen ja tehokas tyรถkalu, jonka avulla voit muuntaa JSON-koodisi.

Linkki: https://codebeautify.org/jsontoxml

JSON-muotoilu:

JSON-muotoilija auttaa sinua ratkaisemaan ongelman muotoilemalla JSON-tiedot niin, ettรค ihmisen on helppo lukea ja korjata niitรค.

Linkki: https://jsonformatter.curiousconcept.com/

UKK

Ei. JSON on tiedonsiirtomuoto, ei ohjelmointikieli. Se ainoastaan โ€‹โ€‹tallentaa ja siirtรครค strukturoitua dataa tekstipohjaisen syntaksin avulla. Ohjelmointikielet, kuten Javakรคsikirjoitus, Pythonja Java lukea ja kirjoittaa JSON-tiedostoa.

JSON itsessรครคn on pelkkรครค tekstiรค ja turvallinen. Riskejรค ilmenee epรคluotettavan syรถtteen jรคsentรคmisessรค, erityisesti vanhaa eval()-metodia kรคytettรคessรค. Kรคytรค standardia JSON-jรคsennintรค, kuten JSON.parse(), ja validoi tiedot injektio-ongelmien vรคlttรคmiseksi.

JSON on tekstimuoto, jota kรคytetรครคn tallentamaan ja transmit dataa. JSON-objekti on yksi kyseisen formaatin rakenne, joka on kirjoitettu aaltosulkeiden sisรครคn nimi/arvo-pareina. Tรคydellinen JSON-tiedosto voi sisรคltรครค useita objekteja ja taulukoita.

Tekoรคlyjรคrjestelmรคt kรคyttรคvรคt JSON-muotoa kehotteiden lรคhettรคmiseen, vastausten vastaanottamiseen ja malliparametrien vaihtamiseen. Useimmat suuret kielimallien API-rajapinnat hyvรคksyvรคt ja palauttavat JSON-muotoa, mikรค tekee siitรค standardimuodon pyynnรถille, strukturoiduille tulosteille ja harjoitusdatan konfiguroinnille.

Kyllรค. Tekoรคlyavustajat voivat luoda JSON-tiedostoja yksinkertaisista kuvauksista ja tarkistaa ne syntaksivirheiden varalta. Monet tyรถkalut myรถs pakottavat kรคyttรคmรครคn skeemaa, jotta tuloste pysyy kelvollisena ja vastaa sovelluksen odottamaa rakennetta.

Tiivistรค tรคmรค viesti seuraavasti: