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รค.

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

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/
