JSON formatu

JSON formatu

JSON formatu

JSON Tai teksto duomenų mainų formatas, todėl jį lengva skaityti ir žmogui, ir programai. Jo pavadinimas atitinka anglišką akronimą „JavaScript“ objektų žymėjimas ir yra standartizuotas kaip ECMA-404. Nors tai yra formatas, labai artimas sintaksei JavaScript, kadangi jį labai lengva apdoroti norint užkoduoti objekto duomenis arba juos gauti, jis taip pat naudojamas daugelyje kitų programavimo kalbų (C, C + +, Java, Pitonas...) kaip alternatyvą, pavyzdžiui, XML, kurio tikslas panašus, tačiau, kadangi jame yra daugiau metainformacijos, reikia daugiau teksto, todėl užima daugiau vietos, sunaudoja daugiau pralaidumo ir reikalauja daugiau išteklių koduoti ir iškoduoti. joje esančią informaciją. JSON.

Turinys

    Užkoduoto objekto duomenys JSON Jie pateikiami skliaustuose, skirtingos juose esančios savybės atskiriamos kableliais, o ypatybių pavadinimai yra prieš reikšmę, nuo kurios jie atskiriami dvitaškiu.

    Objekto sintaksės kontūras JSON formatu

    Savybių pavadinimai turi būti pateikiami kabutėse naudojant dvigubas kabutes (nors kai kurie analizatoriai palaikys viengubas kabutes), ir nors kai kurie specialieji vardams leidžiami simboliai (pvz., kirčio ženklai), nerekomenduojama vengti kai kurių analizės variklių kriterijų ir venkite konfliktų, kai naudojate ypatybę, ypač su dot(object.property) sintaksė

    Aukščiau pateiktame pavyzdyje galite pamatyti objektą, turintį šešias savybes su paprastomis, skaitinėmis, loginėmis arba tekstinėmis reikšmėmis; bet formatu JSON, savybės taip pat gali gauti kaip reikšmę objektą (įskaitant „specialų objektą“ nulį) arba masyvą, be teksto eilutės (tekstas kabutėse), skaičiaus (skirtingais formatais) arba loginės reikšmės (teisinga arba klaidinga). ).

    Kaip ir su kalba JavaScript (JSON yra poaibis JavaScript) norint išreikšti matricą, jos reikšmės yra laužtiniuose skliaustuose ir atskiriamos kableliais. Paprasčiausias atvejis iliustruotas toliau pateiktame pavyzdyje; Tai vienmatis masyvas, vektorius, sudarytas iš skaitinių reikšmių.

    En JavaScript Nebūtina, kad visi masyvo elementai būtų to paties tipo; pavyzdžiui, teksto eilutes ir skaitines reikšmes galima maišyti. Vektorius, vienmatis masyvas, taip pat gali būti vienas iš kito masyvo elementų, leidžiantis sudaryti daugiamačius kintamo ilgio matricas. Šiame pavyzdyje parodytas objektas su trimis savybėmis: pirmasis yra dvimatis fiksuoto ilgio masyvas, antrasis kintamų ilgių masyvas ir trečiasis sudarytas iš masyvo su skirtingų tipų reikšmėmis.

    Toliau pateiktame pavyzdyje kiti objektai naudojami kaip pirminio objekto ypatybių reikšmės. Lizdų lygis neribojamas, todėl, savo ruožtu, objektai, kurie yra pirminės nuosavybės vertės, taip pat gali turėti kitus objektus kaip nuosavybės vertybes ir pan.

    Kaip tai atsitinka su JavaScript, pabėgimo kodai naudojami tam tikriems simboliams įtraukti į teksto eilutę. Pats bendriausias būdas yra naudoti unikodo kodus, išreikštus pabėgimo juosta, raide u ir keturiais šešioliktainiais skaitmenimis su formatu "\u263A" pavyzdžiui, nurodyti ☺.

    Standartiniai simboliai, esantys daugumoje kalbų (panašūs į C), yra šie

    • Atgal \b Kodas ASCII 8 (0 x 08)
    • Lentelė \t Kodas ASCII 9 (0x09) Paprastai jis vaizduojamas kaip HT (horizontalus tabulatorius)
    • Nauja linija \n Kodas ASCII 10 (0x0A) Paprastai jis vaizduojamas kaip LF (linijos tiekimas)
    • Naujas puslapis \f Kodas ASCII 12 (0x0C) Paprastai vaizduojama kaip FF (formos tiekimas)
    • Grįžti \r Kodas ASCII 13 (0x0D) Paprastai jis vaizduojamas kaip CR (vežimo grįžimas)
    • Kabutės \" Kodas ASCII 34 (0 x 22)
    • padalinta juosta \/ Kodas ASCII 57 (0x2F)
    • pasvirasis brūkšnys \\ Kodas ASCII 134 (0x5C)
    • unikodo kodas \uXXXX

    Kilęs iš C (ir susiję su unix ir panašiai, pvz GNU / Linux) eilutės pabaiga paprastai vaizduojama su \n ir jis turi būti pasirinktas JSON bet įdomu prisiminti, kad kai kurios operacinės sistemos teikia pirmenybę kitoms alternatyvoms. Windows paprastai reiškia su \r\n eilučių pabaigos ir Mac OS (prieš OS \r

    Kalbant apie skaitmeninį formatą, nuoroda taip pat yra JavaScript. Dešimtainis skyriklis yra taškas, brūkšnys (ASCII 45 0x2D) naudojamas kaip neigiamas ženklas ir žymėjimas eksponentine forma (Mokslinis KOMENTARAS) naudoja E kaip indikatorius (kuris gali būti didžiosios arba mažosios raidės)

    Kaip sakiau pradžioje, norint naudoti duomenis, kurie bus gauti kaip tekstas, skirtingos programavimo kalbos turi analizės ir priskyrimo funkcijas. Toliau pateiktame pavyzdyje parodyta, kaip jie būtų naudojami JavaScript. Kad būtų galima juo naudotis iš konsolės, įtraukta duomenų priskyrimas JSON Siekiant išvengti galimų klaidų, priklausomai nuo vertėjo naudojamo ECMA standarto JavaScript atliekamas objekto priskyrimas JSON vienoje eilutėje. 6 m. 2016 leidimas (ECMA-262) palaiko kelių eilučių eilutes, 5 leidimas (iki 2011 m.) turi pridėti pabėgimo kodą \ o ankstesniuose jūs turite tai išspręsti ranka arba naudoti vieną eilutę.

    Įspėjimas nesupainioti naujų vartotojų JavaScript. Kodo viduje JavaScript Kuriant objektą nebūtina naudoti teksto eilutės, ankstesniame pavyzdyje ji naudojama duomenims, gaunamiems, pavyzdžiui, iš serverio, imituoti. Norėdami priskirti objektą kintamajam, pavyzdžiui:

    Tą objektą galima konvertuoti į tekstą, pavyzdžiui, naudojant funkciją stringify taip:

    Formatas JSON Jis yra gana lankstus, tačiau daugiausia dėl to, kad jis yra pagrįstas tekstu, kad būtų skaitomas žmonėms, jis turi tam tikrų trūkumų. Pirma, ji reikalauja daugiau atminties ir sunaudoja daugiau pralaidumo nei būtina. Ankstesniuose pavyzdžiuose buvo naudojamas formatas, kurio tikslas yra būti skaitomesnis nei ekonomiškas, todėl jie nėra taupymo pavyzdys, nors yra daug formato elementų (skliaustiniai skliaustai, kabutės...), kurie tęstųsi. sunaudoti išteklius, palyginti su pateikiama informacija.

    Antroji problema iškyla dirbant su grynai dvejetainiais duomenimis (pavyzdžiui, paveikslėliais). Kalbant apie mažas dalis, ją galima išspręsti tuo, kas buvo paaiškinta sprendžiant specialiųjų simbolių formatavimą, tačiau jei kalbama apie tam tikrų matmenų informacijos kodavimą, jį reikės įterpti į formatą JSON naudojant kitą teksto formatą. Dažniausiai naudojamas kodavimas šiam aspektui išspręsti yra Pagrindas64 nes daugelyje kalbų yra bibliotekos, skirtos informacijai konvertuoti viena ar kita kryptimi. Jei duomenys, kuriais manipuliuojama, vyrauja tokio tipo ir/arba žmogui nebūtina interpretuoti informacijos be programos, verta pagalvoti, ar formatas JSON yra tinkamiausias.

    Rašyti komentarą

    Galbūt praleidote