JSON na format

JSON na format

JSON na format

JSON Ito ay isang text-based na data exchange format, ibig sabihin ay madaling basahin para sa isang tao pati na rin sa isang programa. Ang pangalan nito ay tumutugma sa English acronym ng JavaScript Notasyon ng Bagay at istandardize bilang ECMA-404. Bagama't ito ay isang format na napakalapit sa syntax sa JavaScript, dahil napakadaling iproseso upang i-encode ang data ng object o makuha ito, ginagamit din ito sa maraming iba pang mga programming language (C, C + +, Java, Sawa…) bilang alternatibo, halimbawa, sa XML, na may katulad na layunin ngunit, dahil kabilang dito ang higit pang meta-impormasyon, nangangailangan ng mas maraming text at samakatuwid ay kumukuha ng mas maraming espasyo, kumonsumo ng mas maraming bandwidth at nangangailangan ng mas maraming mapagkukunan upang ma-encode at ma-decode ang impormasyon naglalaman ito ng. JSON.

Talaan ng Nilalaman

    Ang data ng isang bagay na naka-encode JSON Ang mga ito ay nakapaloob sa mga brace, ang iba't ibang mga katangian na kasama sa mga ito ay pinaghihiwalay ng mga kuwit at ang mga pangalan ng ari-arian ay nauuna sa halaga, kung saan sila ay pinaghihiwalay ng isang tutuldok.

    Outline ng syntax ng isang object sa JSON format

    Ang mga pangalan ng ari-arian ay dapat na nakapaloob sa mga quote gamit ang mga double quote (bagaman ang ilang mga parser ay sumusuporta sa mga solong quote), at bagama't ang ilang mga espesyal na character ay pinapayagan para sa mga pangalan (tulad ng mga marka ng accent), hindi inirerekomenda na iwasan ang pamantayan ng ilang mga makina ng pagsusuri at upang maiwasan ang mga salungatan kapag gumagamit ng property lalo na sa dot(object.property) syntax

    Sa halimbawa sa itaas, makikita mo ang isang bagay na may anim na katangian na may simple, numeric, boolean o mga halaga ng teksto; ngunit sa format JSON, ang mga katangian ay maaari ding makakuha bilang isang halaga ng isang bagay (kabilang ang "espesyal na bagay" na null) o isang array bilang karagdagan sa isang text string (isang teksto sa mga quote), isang numero (sa iba't ibang mga format) o isang boolean na halaga (true o false ).

    Tulad ng sa wika JavaScript (JSON ay isang subset ng JavaScript) upang ipahayag ang isang matrix, ang mga halaga nito ay nakapaloob sa mga square bracket at pinaghihiwalay ng mga kuwit. Ang pinakasimpleng kaso ay inilalarawan sa halimbawa sa ibaba; Ito ay isang one-dimensional array, isang vector, na binubuo ng mga numerical value.

    En JavaScript Hindi kinakailangan na ang lahat ng mga elemento ng isang array ay may parehong uri, maaari mong paghaluin, halimbawa, mga string ng teksto at mga numerical na halaga. Ang isang vector, isang one-dimensional na array, ay maaari ding maging isa sa mga elemento ng isa pang array, na nagpapahintulot sa mga multidimensional na array ng variable na haba na mabuo. Ang sumusunod na halimbawa ay nagpapakita ng isang bagay na may tatlong katangian: ang una ay isang dalawang-dimensional na hanay ng mga nakapirming haba, ang pangalawang variable na haba, at ang pangatlo ay nabuo ng isang array na may mga halaga ng iba't ibang uri.

    Ang sumusunod na halimbawa ay gumagamit ng iba pang mga bagay bilang mga halaga para sa mga katangian ng magulang na bagay. Walang limitasyon sa antas ng nesting kaya, sa turn, ang mga bagay na mga halaga ng ari-arian ng magulang ay maaari ding magkaroon ng iba pang mga bagay bilang kanilang mga halaga ng ari-arian at iba pa.

    Tulad ng nangyayari sa JavaScript, ang mga escape code ay ginagamit upang isama ang ilang partikular na character sa loob ng isang text string. Ang pinaka-generic na paraan ay ang paggamit ng mga unicode code na ipinahayag gamit ang escape bar, titik u at apat na hexadecimal na digit na may format. "\u263A" upang sumangguni sa ☺ halimbawa.

    Ang mga karaniwang character, na naroroon sa karamihan ng mga wika (katulad ng C) ay ang mga sumusunod

    • Muli \b Kodigo ASCII 8 (0x08)
    • Tabulator \t Kodigo ASCII 9 (0x09) Karaniwan itong kinakatawan bilang HT (horizontal tabulator)
    • Bagong linya \n Kodigo ASCII 10 (0x0A) Karaniwan itong kinakatawan bilang LF (line feed)
    • Bagong pahina \f Kodigo ASCII 12 (0x0C) Karaniwang kinakatawan bilang FF (form feed)
    • Bumalik \r Kodigo ASCII 13 (0x0D) Karaniwan itong kinakatawan bilang CR (carriage return)
    • Mga Comillas \" Kodigo ASCII 34 (0x22)
    • division bar \/ Kodigo ASCII 57 (0x2F)
    • Backslash \\ Kodigo ASCII 134 (0x5C)
    • unicode code \uXXXX

    Hango sa C (at nauugnay sa Unix at mga katulad nito, tulad ng GNU / Linux) ang dulo ng linya ay karaniwang kinakatawan ng \n at ito ang dapat piliin JSON ngunit ito ay kagiliw-giliw na tandaan na ang ilang mga operating system ay mas gusto ang iba pang mga alternatibo. Karaniwang kinakatawan ng Windows ang may \r\n mga linya ng pagtatapos at Mac OS (bago ang OS \r

    Tungkol sa numerical na format, ang sanggunian ay din JavaScript. Ang decimal separator ay ang tuldok, ang gitling (ASCII 45 0x2D) ay ginagamit bilang negatibong senyales at ang notasyon sa exponential form (Notasyong pang-agham) gamit E bilang indicator (na maaaring upper o lower case)

    Tulad ng sinabi ko sa simula, upang magamit ang data, na makukuha bilang isang teksto, ang iba't ibang mga programming language ay may mga pag-andar ng pagsusuri at pagtatalaga. Ang sumusunod na halimbawa ay nagpapakita kung paano sila gagamitin sa JavaScript. Upang magamit ito mula sa isang console, kasama ang pagtatalaga ng data JSON Para maiwasan ang mga posibleng pagkakamali depende sa ECMA standard na ginagamit ng interpreter JavaScript ginawa ang pagtatalaga ng bagay JSON sa isang linya. Edisyon 6 ng 2016 (ECMA-262) ay sumusuporta sa mga multiline na string, ang edisyon 5 (hanggang 2011) ay kailangang magdagdag ng escape code \ at sa mga naunang kailangan mong lutasin ito sa pamamagitan ng kamay o gumamit ng isang linya.

    Isang babala na huwag malito ang mga bagong user JavaScript. Sa loob ng code JavaScript Hindi kinakailangang gumamit ng text string upang lumikha ng isang bagay, sa nakaraang halimbawa ito ay ginagamit upang gayahin ang data na dumarating, halimbawa, mula sa isang server. Upang magtalaga ng isang bagay sa isang variable, tulad ng:

    Ang bagay na iyon ay maaaring ma-convert sa text, halimbawa, gamit ang function stringify tulad ng sumusunod:

    Ang format JSON Ito ay medyo nababaluktot ngunit, higit sa lahat dahil ito ay nakabatay sa teksto upang mabasa ng tao, mayroon itong ilang mga kakulangan. Ang una ay nangangailangan ito ng mas maraming memorya at kumokonsumo ng mas maraming bandwidth kaysa sa mahalaga. Sa mga nakaraang halimbawa, ginamit ang isang format na naglalayong mas madaling mabasa kaysa matipid, kaya hindi sila halimbawa ng pagtitipid, kahit na maraming elemento ng format (braces, bracket, quotes...) na magpapatuloy. upang kumonsumo ng mga mapagkukunan kumpara sa impormasyong kinakatawan.sa hilaw.

    Ang pangalawang problema ay lumitaw kapag nakikitungo sa purong binary na data (halimbawa, mga imahe). Kapag nakikitungo sa maliliit na bahagi, maaari itong malutas sa kung ano ang ipinaliwanag upang malutas ang pag-format ng mga espesyal na character, ngunit kung ito ay tungkol sa pag-encode ng impormasyon ng ilang mga sukat, kakailanganin itong i-embed sa loob ng Format JSON gamit ang ibang text format. Ang pinakaginagamit na encoding para malutas ang aspetong ito ay Basexnumx dahil maraming mga wika ang may mga aklatan upang i-convert ang impormasyon sa isang direksyon o iba pa. Kung ang data na minamanipula ay nakararami sa ganitong uri at/o hindi kinakailangan para sa isang tao na bigyang-kahulugan ang impormasyon nang walang programa, ito ay nagkakahalaga ng pagsasaalang-alang kung ang format JSON ay ang pinaka-angkop.

    Maaaring Na-miss Mo