Programavimas

Kas yra JSON? Geresnis keitimosi duomenimis formatas

„JavaScript Object Notation“ yra be schemos, tekstinis struktūrizuotų duomenų pateikimas, pagrįstas raktų reikšmių poromis ir sutvarkytais sąrašais. Nors JSON yra kilęs iš „JavaScript“, jis palaikomas natūraliai arba per bibliotekas daugumoje pagrindinių programavimo kalbų. JSON paprastai naudojamas, bet ne išimtinai, keičiantis informacija tarp interneto klientų ir žiniatinklio serverių.

Per pastaruosius 15 metų JSON tapo visur žiniatinklyje. Šiandien tai yra beveik kiekvienos viešai prieinamos žiniatinklio paslaugos pasirinkimo formatas, jis dažnai naudojamas ir privačioms interneto paslaugoms.

JSON populiarumas taip pat lėmė JSON palaikymą iš daugelio duomenų bazių. Reliacinėse duomenų bazėse, tokiose kaip „PostgreSQL“ ir „MySQL“, dabar teikiama natūrali JSON duomenų saugojimo ir užklausų palaikymo pagalba. „NoSQL“ duomenų bazės, tokios kaip „MongoDB“ ir „Neo4j“, taip pat palaiko JSON, nors „MongoDB“ užkulisiuose naudoja šiek tiek pakeistą, dvejetainę JSON versiją.

Šiame straipsnyje mes greitai apžvelgsime JSON ir aptarsime, iš kur jis atsirado, jo pranašumus prieš XML, trūkumus, kada turėtumėte jį naudoti ir kada turėtumėte apsvarstyti alternatyvas. Tačiau pirmiausia pasinerkime į tai, kaip praktiškai atrodo JSON.

JSON pavyzdys

Štai JSON koduotų duomenų pavyzdys:

{

„FirstName“: „Jonathanas“,

„Pavardė“: „Freemanas“,

„LoginCount“: 4,

„IsWriter“: tiesa,

„WorksWith“: [„Spantree Technology Group“, „“],

"augintiniai": [

    {

„Vardas“: „Lilly“,

„Type“: „Raccoon“

    }

  ]

}

Aukščiau pateikta struktūra aiškiai apibrėžia kai kuriuos asmens požymius. Jame nurodomas vardas ir pavardė, kartų, kai asmuo prisijungė, skaičius, ar šis asmuo yra rašytojas, sąrašas įmonių, su kuriomis asmuo dirba, ir asmens augintinių sąrašas (šiuo atveju tik vienas). Tokia struktūra, kaip aukščiau, gali būti perkelta iš serverio į žiniatinklio naršyklę ar mobiliąją programą, kuri atliks tam tikrus veiksmus, pvz., Parodys duomenis arba išsaugos juos vėlesniam naudojimui.

JSON yra bendras duomenų formatas, turintis minimalų skaičių tipų: eilutės, skaičiai, loginės reikšmės, sąrašai, objektai ir nulis. Nors žymėjimas yra „JavaScript“ pogrupis, šie tipai pateikiami visomis įprastomis programavimo kalbomis, todėl JSON yra geras kandidatas perduoti duomenis per kalbos spragas.

JSON failai

JSON duomenys saugomi failuose, kurie baigiasi .json plėtiniu. Laikantis JSON žmonėms skaitomo etoso, tai yra tiesiog paprasto teksto failai, kuriuos galima lengvai atidaryti ir ištirti. Kaip paaiškina „SQLizer“ tinklaraštis, tai taip pat yra raktas į platesnį JSON sąveikumą, nes beveik kiekviena kalba, kurią galite įvardyti, galite skaityti ir apdoroti paprasto teksto failus, ir juos lengva siųsti internetu.

Kodėl turėčiau naudoti JSON?

Norėdami suprasti JSON naudingumą ir svarbą, turėsime šiek tiek suprasti apie interaktyvumo internete istoriją.

2000-ųjų pradžioje interaktyvumas internete pradėjo keistis. Tuo metu naršyklė daugiausia tarnavo kaip nebylus klientas, kad būtų rodoma informacija, o serveris atliko visą sunkų darbą, kad parengtų turinį rodyti. Kai vartotojas spustelėja nuorodą ar mygtuką naršyklėje, užklausa bus išsiųsta į serverį, serveris parengs reikiamą informaciją kaip HTML, o naršyklė pateiks HTML kaip naują puslapį. Šis modelis buvo vangus ir neefektyvus, todėl naršyklė reikalavo iš naujo pateikti viską puslapyje, net jei pasikeitė tik puslapio dalis.

Kadangi viso puslapio perkėlimas kainavo brangiai, interneto kūrėjai siekė naujesnių technologijų, kad pagerintų bendrą vartotojo patirtį. Tuo tarpu galimybė pateikti žiniatinklio užklausas fone, kol buvo rodomas puslapis, kuris neseniai buvo pristatytas „Internet Explorer 5“, pasirodė esąs perspektyvus būdas palaipsniui įkelti duomenis rodyti. Užuot perkėlus visą puslapio turinį, spustelėjus mygtuką „Atnaujinti“, bus suaktyvinta žiniatinklio užklausa, kuri bus įkelta fone. Kai turinys buvo įkeltas, duomenis buvo galima tvarkyti, išsaugoti ir rodyti puslapyje naudojant „JavaScript“ - universalią naršyklių programavimo kalbą.

REST vs SOAP: JSON ryšys

Iš pradžių šie duomenys buvo perduodami XML formatu (pavyzdį žr. Toliau), naudodamas pranešimų siuntimo protokolą, vadinamą SOAP (paprasto objekto prieigos protokolas). Tačiau XML buvo paprastas ir sunkiai valdomas „JavaScript“. „JavaScript“ jau turėjo objektų, kurie yra būdas išreikšti duomenis kalboje, todėl Douglasas Crockfordas paėmė šios išraiškos pogrupį kaip naujo duomenų mainų formato specifikaciją ir pavadino JSON. JSON žmonėms buvo daug lengviau skaityti, o naršyklėms - analizuoti.

Dešimtajame dešimtmetyje kita interneto paslaugų technologija, pavadinta „Reprezentacinis valstybės perdavimas“ arba „REST“, pradėjo perduoti SOAP duomenų perdavimo tikslais. Vienas iš didelių programavimo naudojant REST API privalumų yra tai, kad galite naudoti kelis duomenų formatus - ne tik XML, bet ir JSON bei HTML. Kai žiniatinklio kūrėjai pirmenybę teikė JSON, o ne XML, jie taip pat rinkosi REST, o ne SOAP. Kaip Kostyantyn Kharchenko paskelbė „Svitla“ tinklaraštyje, „Daugeliu atžvilgių REST sėkmę lemia JSON formatas, nes jį lengva naudoti įvairiose platformose“.

Šiandien JSON yra de facto keitimosi duomenimis tarp žiniatinklio ir mobiliųjų klientų bei pakaitinių paslaugų standartas.

JSON ir XML

Kaip pažymėta aukščiau, pagrindinė JSON alternatyva yra XML. Tačiau XML vis mažiau paplitęs naujose sistemose, todėl lengva suprasti, kodėl. Žemiau pateikiama anksčiau matytų duomenų versija, šį kartą XML:

Džonatanas

Freemanas

  4

tiesa

„Spantree Technology Group“

Lilly

Meškėnas

Be to, kad XML yra išsamesnis (šiuo atveju lygiai dvigubai vertingesnis), XML taip pat pateikia tam tikrų neaiškumų analizuojant „JavaScript“ pritaikytą duomenų struktūrą. XML pavertimas „JavaScript“ objektu gali užtrukti nuo dešimčių iki šimtų kodo eilučių, todėl galiausiai reikia pritaikyti atsižvelgiant į konkretų analizuojamą objektą. Konvertuojant JSON į „JavaScript“ objektą reikia vienos kodo eilutės ir nereikia jokių išankstinių žinių apie analizuojamą objektą.

JSON apribojimai

Nors JSON yra gana glaustas, lankstus duomenų formatas, su kuriuo lengva dirbti daugeliu programavimo kalbų, yra keletas formato trūkumų. Čia yra penki pagrindiniai apribojimai:

  1. Nėra schemos. Viena vertus, tai reiškia, kad turite visišką lankstumą pateikti duomenis bet kokiu būdu. Kita vertus, tai reiškia, kad netyčia galite labai lengvai sukurti netinkamus duomenis.
  2. Tik vienas skaičių tipas: IEEE-754 dvigubo tikslumo slankiojo kablelio formatas. Tai gana gundantis, bet tai tiesiog reiškia, kad negalima pasinaudoti įvairiais ir niuansuotais skaičių tipais, galimais daugeliu programavimo kalbų.
  3. Nėra datos tipo. Šis praleidimas reiškia, kad kūrėjai turi naudoti eilutes datų atvaizdavimams, dėl kurių susidaro formatavimo neatitikimai, arba turi pateikti datas milisekundėmis nuo epochos (1970 m. Sausio 1 d.).
  4. Be komentarų. Dėl to neįmanoma anotuoti laukų tiesiai, reikalaujant papildomų dokumentų ir padidinant nesusipratimo tikimybę.
  5. Daugžodiškumas. Nors JSON yra mažiau išsamus nei XML, tai nėra pats glaustiausias keitimosi duomenimis formatas. Norėdami naudoti didelės apimties ar specialios paskirties paslaugas, norėsite naudoti efektyvesnius duomenų formatus.

Kada turėčiau naudoti JSON?

Jei rašote programinę įrangą, kuri palaiko ryšį su naršykle arba vietine mobiliąja programa, kaip duomenų formatą turėtumėte naudoti JSON. Tokio formato kaip XML naudojimas yra pasenęs pasirinkimas ir raudona vėliava, skirta front-end ir mobiliesiems talentams, kuriuos šiaip norėtumėte pritraukti.

Ryšio tarp serverio ir serverio atveju jums gali būti geriau naudoti serializavimo sistemą, pvz., „Apache Avro“ ar „Apache Thrift“. JSON čia nėra blogas pasirinkimas ir vis tiek gali būti būtent tai, ko jums reikia, tačiau atsakymas nėra toks aiškus, kaip žiniatinklio ir mobiliojo ryšio atveju.

Jei naudojate „NoSQL“ duomenų bazes, esate gana įstrigę bet kokioje duomenų bazėje. Reliacinėse duomenų bazėse, palaikančiose JSON kaip tipą, gera taisyklė yra naudoti ją kuo mažiau. Reliacinės duomenų bazės buvo pritaikytos struktūriniams duomenims, kurie tinka tam tikrai schemai. Nors dauguma dabar palaiko lankstesnius duomenis JSON pavidalu, galite tikėtis našumo, kai teiksite užklausas dėl tų JSON objektų ypatybių.

JSON yra visur esantis faktinis duomenų siuntimo tarp žiniatinklio serverių ir naršyklių bei mobiliųjų programų formatas. Paprastas dizainas ir lankstumas leidžia lengvai skaityti ir suprasti bei daugeliu atvejų lengvai valdyti pasirinkta programavimo kalba. Griežtos schemos nebuvimas įgalina formato lankstumą, tačiau dėl šio lankstumo kartais sunku užtikrinti, kad tinkamai skaitote ir rašote JSON.

JSON analizatorius

Programos kodo dalis, paverčianti JSON saugomus duomenis į formatą, kurį programa gali naudoti, vadinama a analizatorius. Kaip tikėjotės, „JavaScript“ apima savąjį analizatorių, metodą JSON.parse ().

Jums gali tekti šiek tiek daugiau dirbti, kad galėtumėte dirbti su JSON tokiomis sudėtingomis kalbomis kaip „Scala“ ar „Elm“, tačiau plačiai paplitęs JSON reiškia, kad yra bibliotekų ir komunalinių paslaugų, kurios padės jums atlikti visas sunkiausias dalis.

„Json.org“ svetainėje yra išsamus kodų bibliotekų, kurias galite naudoti analizuodami, generuodami ir manipuliuodami JSON, sąrašas tokiomis įvairiomis kalbomis kaip „Python“, „C #“ ir „COBOL“.

JSON komunalinės paslaugos

Jei norite tiesiogiai manipuliuoti JSON koduotais duomenimis ar juos nagrinėti, patys nerašydami kodo, jums gali padėti keletas internetinių paslaugų. Visi programiniai atitikmenys aukščiau susietose kodų bibliotekose, tačiau galite iškirpti ir įklijuoti JSON kodą į šiuos naršyklės įrankius, kad geriau suprastumėte JSON arba atliktumėte greitą ir nešvarią analizę:

  • „JSON Formatter“: „JSONLint“ suformatuos ir patvirtins savavališką JSON kodą.
  • „JSON Viewer“: „Stack.hu“ turi svetainę, kuri sukurs interaktyvų medį, kuris padės suprasti jūsų JSON kodo struktūrą.
  • „JSON Beautifier“: Jei norite „gražiai atspausdinti“ savo JSON kodą su sintaksės spalvomis ir panašiai, „Prettydiff“ gali jums padėti.
  • JSON keitiklis: Reikia greitai perkelti duomenis iš JSON formato į ką nors kitą? „Convertcsv.com“ turi įrankius, kurie gali konvertuoti JSON į CSV (kurį vėliau galima atidaryti „Excel“) arba XML.

JSON pamoka

Pasirengę pasinerti ir sužinoti daugiau apie tai, kaip dirbti su JSON jūsų interaktyviose programose? „Mozilla“ kūrėjų tinkle yra puiki pamoka, padėsianti pradėti naudotis JSON ir „JavaScript“. Jei esate pasirengęs pereiti prie kitų kalbų, peržiūrėkite JSON naudojimo su „Java“ (iš „Baeldung“), su „Python“ (iš „DataCamp“) arba „C #“ (iš „Software Testing Help“) pamoką. Sėkmės!

Joshas Fruhlingeris prisidėjo prie šio straipsnio.