Kas ir JSON ?
JSON ir iespēja aktuālo datu pārvietošanai tīmeklī starp dažādiem neatkarīgiem web projektiem.
Mūsdienu tīmeklis sastāv no miljoniem tīmekļa lapu, savienotiem pakalpojumiem un datu bāzēm.
Ir vietnes, kas sazinās ar citām vietnēm, iegūst datus no datu plūsmām un datu nodrošinātājiem, gan maksas, gan bezmaksas.
Visas šīs datu plūsmas ir jāveicina ar sava veida datu formātu.
Ap 2001. gadu Duglass Krokfords nāca klajā ar datu apmaiņas formātu, kura pamatā ir JavaScript objekti. Šim formātam tika dots nosaukums JSON, kas ir JavaScript objektu apzīmējums.
Pirms JSON visizplatītākais datu apmaiņas failu formāts bija XML (Extensible Markup Language) ,jeb paplašināmā iezīmēšanas valoda. Tomēr XML sintakses dēļ bija nepieciešams vairāk rakstzīmju, lai aprakstītu nosūtītos datus. Turklāt, tā kā tā bija īpaša atsevišķa valoda, tai nebija tik viegli sadarboties ar JavaScript.
Tādējādi divi galvenie iemesli, kāpēc JSON formāts kļūst par dominējošo datu apmaiņas formātu, kāds tas ir šodien, ir divi:
- Pirmkārt, tas ir ļoti viegls, un ar sintakse ir ļoti līdzīga “stringificētam JavaScript objektam”.
- Otrkārt, to ir vieglāk apstrādāt JavaScript kodā, jo galu galā JSON ir tikai JavaScript.
Bieži tiek teikts, ka JSON ir JavaScript apakškopa, kas nozīmē, ka tas atbilst JavaScript valodas sintakses noteikumiem, taču vēl stingrāk ir noteikts, kā pareizi formatēt JSON kodu. Citiem vārdiem sakot, viss JSON kods ir JavaScript, bet ne viss JavaScript kods ir JSON.
JSON ir ne tikai datu apmaiņas formāts, bet arī faila formāts. Nav nekas neparasts, ka dažiem trešās puses datiem no trešās puses vietnes tiek piekļūts mūsu kodā json faila veidā.
Piemēram, ja jums bija vietne ar datiem par akciju cenu izmaiņām, iespējams, vēlēsities iegūt datus par pašreizējām akciju cenām no datu piegādātāja. Viņi varētu piedāvāt savus datu pakalpojumus, piešķirot jums piekļuvi failam ar nosaukumu stockPrices.json, kuram varat piekļūt no viņu serveriem.
Kad esat lejupielādējis šos stringificētos JSON datus savā kodā, varat pārvērst šos datus par vienkāršu JavaScript objektu.
Tas nozīmētu, ka varat izmantot savas tīmekļa lietojumprogrammas kodu, lai “iedziļinātos” trešās puses datos, kas pārveidoti par JavaScript objektu, lai iegūtu konkrētu informāciju, pamatojoties uz noteiktu kritēriju kopu.
Piemēram, ja stringificētie JSON dati tika pārveidoti par objektu, kam bija šāda struktūra:
const currencyInfo = {
[
USD: {
// ...
},
GBP: {
// ...
},
EUR: {
// ...
}
]
}
Pēc tam jūs varētu piekļūt tikai USD īpašuma datiem, ja tas ir tas, kas jūsu lietotnei bija vajadzīgs noteiktā brīdī.
Tagad Jūs saprotat, kā un kāpēc jūs varētu vēlēties izmantot JSON savā kodā.
Tas viss ir saistīts ar stringizētu JSON datu iegūšanu no servera, šo datu pārveidošanu (“parsēšanu”) JS objektos savā kodā, darbu ar konvertētajiem datiem savā kodā un, iespējams, pat rezultāta stringēšanu JSON formātā, lai šie dati ir gatavi, piemēram, nosūtīšanai atpakaļ uz serveri pēc tam, kad kods ir to apstrādājis lokāli.
JSON ir tikai virkne, taču ir noteikumi, kas tam ir jāievēro
JSON ir virkne, taču tai ir jābūt pareizi formatētai. Citiem vārdiem sakot, tai ir jāievēro daži noteikumi.
Ja JSON virkne nav pareizi formatēta, JavaScript nevarēs parsēt to JavaScript objektā.
JSON var strādāt ar dažiem primitīviem un dažiem sarežģītiem datu tipiem, kā aprakstīts tālāk.
Tikai JavaScript vērtību apakškopu var pareizi sakārtot JSON un parsēt no JavaScript objekta JSON virknē.
Šīs vērtības ietver:
- primitīvas vērtības: virknes, skaitļi, bolleans, null
- sarežģītas vērtības: objekti un masīvi (nav funkciju!)
- Objektiem ir virknes ar dubultpēdiņām visiem taustiņiem
- Rekvizīti ir atdalīti ar komatu gan JSON objektos, gan JSON masīvos, tāpat kā parastajā JavaScript kodā
Virknes rekvizīti jāiekļauj dubultpēdiņās. Piemēram:
"augļi",
"dārzeņi",
- Skaitļu rekvizīti tiek attēloti, izmantojot parasto JavaScript skaitļu sintaksi; piem
5,
10,
1.2
- Būlean rekvizīti tiek attēloti, izmantojot parasto JavaScript Būla sintaksi, tas ir:
true
un
false
- Null kā rekvizīts ir tāds pats kā parastajā JavaScript; tas ir tikai
NULL
Varat izmantot objektu literāļus un masīvu literāļus, ja vien ievērojat iepriekš minētos noteikumus
Kas notiek, ja mēģināt stingrizēt datu tipu, kas netiek pieņemts JSON sintaksē?
Piemēram, ko darīt, ja mēģinātu stringificēt funkciju? Operācija klusībā neizdosies.
Ja mēģinātu striktizēt dažus citus datu tipus, piemēram, BigInt numuru, piemēram, 123n, tiks parādīta šāda kļūda: Uncaught TypeError: Do not know how to serialize a BigInt.
Daži JSON virkņu piemēri
Visbeidzot, šeit ir stringificēta JSON objekta piemērs ar vienu atslēgas vērtību pāri:
'{"krāsa":"sarkana"}'
Šeit ir nedaudz sarežģītāks JSON objekts:
'{"color":"sarkans", "nestedObject": { "color": "zils" } }'
Iepriekš minētais JSON objekts kodē divus rekvizītus:
- “color”:”sarkans”
- “nestedObject”: { “color”: “zils” }
Ir arī iespējams, ka JSON virknes kodējums ir tikai masīvs:
'["viens divi trīs"]'
Iepriekš minētā JSON virkne kodē masīvu, kurā ir trīs vienumi, trīs virknes datu tipa vērtības. Acīmredzot, tāpat kā objekti, masīvi var ligzdot citas vienkāršas vai sarežģītas datu struktūras.
Piemēram:
'[{ "color": "blue" }, {"color: "red"}]'
Iepriekš minētajā piemērā JSON virkne kodē masīvu, kurā ir divi objekti, kur katrs objekts sastāv no viena atslēgas vērtību pāra, kur abas vērtības ir virknes.
Atbildēt
Lai komentētu, jums jāpiesakās sistēmā.