Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

json ndryshore. Bazat e JSON

I përbërë nga çifte atribut-vlerë. Është formati më i zakonshëm i të dhënave që përdoret për komunikim asinkron midis shfletuesit dhe serverit, duke zëvendësuar kryesisht XML (duke përdorur AJAX).

JSON është një format i të dhënave i pavarur nga gjuha që rrjedh nga JavaScript. Që nga viti 2017, shumë gjuhë programimi përdorin kodin për të gjeneruar dhe analizuar të dhëna vetëm në të. Emrat e skedarëve JSON përdorin shtesën .json.

Historia e krijimit

Formati JSON u zhvillua fillimisht nga Douglas Crockford në fillim të viteve 2000, dhe më pas u përcaktua nga dy standarde konkurruese (RFC 7159 dhe ECMA-404) në 2013. Standardi ECMA përshkruan vetëm sintaksë të vlefshme, ndërsa RFC mbulon disa siguri dhe ndërveprim bazë.

Përveç kësaj, ekziston një standard i quajtur RFC 7493, i cili përcakton profil i kufizuar, i njohur si I-JSON (shkurt për "Internet JSON"). Ai kërkon të kapërcejë disa probleme të ndërveprimit. Çdo dokument i tillë është një dokument i vlefshëm JSON.

Nevoja për të krijuar këtë format lindi nga nevoja për një protokoll të vërtetë komunikimi midis serverit dhe shfletuesit, i realizuar në kohë reale pa përdorimin e shtojcave (si p.sh. apletet Flash ose Java).

Zhvillimi dhe Aplikimi

Siç u përmend tashmë, Douglas Crockford, duke qenë krijuesi i kompanisë StateSoftware, fillimisht identifikoi dhe popullarizoi formatin JSON. Më pas, bashkëthemeluesit ranë dakord të krijonin një sistem duke përdorur karakteristika standarde shfletuesi, dhe ofroi një shtresë abstraksioni për zhvilluesit për të krijuar aplikacione me një lidhje të vazhdueshme të plotë dupleks me një server në internet. Në të njëjtën kohë, u bë e mundur mbajtja e dy lidhjeve HTTP të hapura dhe procesimi i tyre deri në kohën standarde të funksionimit të shfletuesit nëse nuk shkëmbeheshin të dhëna. Bashkëthemeluesit zhvilluan një diskutim për tryezë të rrumbullakët dhe votuan për të thirrur formatin e të dhënave JSML ose JSON, dhe gjithashtu përcaktojnë llojin e licencës nën të cilën zhvillim i ri do të bëhet i disponueshëm. Formati është aktualisht me burim të hapur.

Përdorimi praktik

Faqja e internetit JSON.org u hap në vitin 2002. Në dhjetor 2005, Yahoo! filloi të ofrojë disa nga shërbimet e saj të internetit në këtë format. Google filloi të përdorte furnizimet JSON për protokollin e tij të internetit GData vetëm në dhjetor 2006.

Formati i skedarit JSON fillimisht ishte menduar dhe përdorej zakonisht në lidhje me një nëngrup të gjuhës së skriptimit JavaScript (veçanërisht Standard ECMA-262 3rd Edition-Dec.). Megjithatë, ky është një format i pavarur i gjuhës së të dhënave. Kodi për analizimin dhe gjenerimin e të dhënave JSON është i disponueshëm në shumë gjuhë programimi. Faqja e internetit JSON liston të gjitha bibliotekat.

Megjithëse JSON online fillimisht u promovua dhe u konsiderua një nëngrup strikte i JavaScript dhe ECMAScript, ai lejon periodikisht disa karaktere të mos iknin në vargjet që nuk lejohen në vargjet JavaScript dhe ECMAScript.

Vetë JSON është bërë standard ndërkombëtar ECMA në 2013 si standardi ECMA-404, i cili u përdor si referencë në RFC 7158 po atë vit. Në vitin 2014, RFC 7159 u bë referenca kryesore për përdorimin e JSON në internet (p.sh. aplikacioni MIME/json).

Llojet e të dhënave, sintaksa dhe shembulli

Llojet kryesore të të dhënave JSON janë:

  • Numri: numër dhjetor me një shenjë, e cila mund të përmbajë pjesë thyesore dhe mund të përdorë shënimin eksponencial E, por nuk mund të përfshijë jo-numra (të tillë si NaN). Formati nuk bën dallim midis numrave të plotë dhe numrave me pikë lundruese. JavaScript përdor formatin e pikës lundruese me saktësi të dyfishtë për të gjithë vlerat numerike, por gjuhët e tjera që zbatojnë JSON mund t'i kodojnë ato ndryshe.

  • Vargu: sekuencë zero ose e madhe Karakteret e Unicode. Vargjet kufizohen me thonjëza të dyfishta dhe mbështesin sintaksën e kthesës së prapme.
  • Literale: çdo e vërtetë ose e rreme.
  • Array: Një listë e renditur me zero ose më shumë vlera, secila prej të cilave mund të jetë e çdo lloji. Përdorimi i vargjeve kllapa katrore me presje.
  • Objekti: Një koleksion i parenditur i çifteve të emrit/vlerës, ku emrat (të quajtur edhe çelësa) janë vargje. Për shkak se objektet synojnë të përfaqësojnë vargje shoqëruese, rekomandohet (megjithëse nuk kërkohet) që çdo çelës të jetë unik brenda tij. Objektet ndahen me kllapa kaçurrelë dhe përdorin presje për të ndarë çdo çift, ndërsa brenda secilit, një karakter me dy pika ndan çelësin ose emrin nga vlera e tij.
  • I pavlefshëm: Vlera boshe, duke përdorur fjalën null.

Hapësira e kufizuar e bardhë lejohet dhe mund të vendoset rreth ose midis elementeve sintaksore (vlerat dhe shenjat e pikësimit, por jo brenda një vlere vargu). Për këtë qëllim vetëm katër personazhe të veçanta Hapësirat e mëposhtme konsiderohen: hapësira, skeda horizontale, vija e re dhe vija e pjerrët përpara. Në veçanti, shenja e rendit të bajtit nuk ka nevojë të gjenerohet nga zbatimi përkatës (edhe pse mund të pranohet kur analizohet JSON). Kërkesa për të Formati JSON nuk ofron sintaksë për komentet.

Versionet e hershme (të tilla si ato të specifikuara në RFC 4627) kërkonin që një dokument i vlefshëm të përbëhet vetëm nga një lloj objekti ose grupi, i cili mund të përmbajë lloje të tjera brenda tyre. Ky format JSON, një shembull i të cilit mund të gjendet në faqet e vjetra të internetit, nuk përdoret aktualisht.

Probleme me transportueshmërinë e të dhënave

Edhe pse Douglas Crockford fillimisht argumentoi se JSON është një nëngrup i rreptë i JavaScript, specifikimi i tij në të vërtetë lejon që të krijohen dokumente që janë të palexueshme nga JavaScript. Në veçanti, JSON lejon që vlerat të jenë Vargjet e Unicode U+2028 LINE SEPARATOR dhe U+2029 PARATOR SEPARATOR u shfaqën të pashpjeguara në rreshtat e cituar, por JavaScript jo. Kjo është pasojë e moslejimit të vetëm të "karaktereve të kontrollit" nga JSON. Për pajtueshmëri maksimale, këtyre karaktereve duhet të shmangen me një vijë të prapme. Kjo hollësi është e rëndësishme kur krijoni JSONP.

Formati JSON: si ta hapni atë?

Dokumentet JSON mund të kodohen në UTF-8, UTF-16 ose UTF-32, kodimi i parazgjedhur është UTF-8. Këto standarde mbështesin komplet i plotë Karakteret "Unicode", duke përfshirë karaktere jashtë planit kryesor shumëgjuhësh (U+10000 deri në U+10FFFF). Megjithatë, nëse fshihen, këto karaktere duhet të shkruhen duke përdorur çifte zëvendësuese UTF-16, një detaj i cili mungon nga disa analizues të formatit JSON. Si të hapet dhe si do të lexohet një skedar i tillë?

Numrat në këtë format janë agnostikë për sa i përket përfaqësimit të tyre në gjuhët e programimit. Nuk ka asnjë ndryshim midis një vlere të plotë dhe një vlere me pikë lundruese: disa zbatime mund të trajtojnë 42, 42.0 dhe 4.2E + 1 si të njëjtin numër, ndërsa të tjerat mund të jo. Për më tepër, nuk ka kërkesa në lidhje me çështje të tilla si tejmbushja, tejmbushja, humbja e saktësisë ose rrumbullakimi. Për më tepër, formati JSON nuk thotë asgjë për trajtimin e nulleve të nënshkruara, pavarësisht nëse 0.0 është ndryshe nga -0.0. Shumica e implementimeve që përdorin standardin IEEE 754 me pikë lundruese, duke përfshirë JavaScript, ruajnë zerat e nënshkruara, por jo të gjitha implementimet JSON mund ta bëjnë këtë.

Përdorimi në JavaScript

Meqenëse formati JSON rrjedh nga JavaScript dhe sintaksa e tij është (kryesisht) një nëngrup i gjuhës, mund të përdorni funksionin JavaScripteval për të analizuar të dhënat JSON. Për shkak të problemit me analizimin e terminatorëve të vargut Unicode të diskutuar në seksionin e mëparshëm, funksioni eval duhet të kryejë zëvendësimin e tyre.

Kjo është e pasigurt nëse vargu nuk është vërtetuar siç duhet. Në vend të kësaj, duhet të përdorni një bibliotekë analizuese JSON ose mbështetje JavaScript për të lexuar dhe shkruar JSON.

Një analizues i implementuar siç duhet do të pranojë vetëm formatin e vlefshëm JSON siç përshkruhet në sistem, duke parandaluar ekzekutimin e paqëllimshëm të kodit potencialisht keqdashës.

Që nga viti 2010, shfletuesit e internetit si Firefox dhe Internet Explorer kanë përfshirë mbështetje për analiza dhe eksportim në formatin JSON.

Llojet e të dhënave të pambështetura

Sintaksa JavaScript përcakton disa lloje të dhënash vendase që nuk përfshihen në standardin JSON: Harta, Set, Data, Gabim, Shprehje e rregullt, Funksioni dhe disa të tjera. Këto lloje Të dhënat JavaScript duhet të përfaqësohet në ndonjë format tjetër, ku të dy programet bien dakord se si të konvertohen midis llojeve. Sot ekzistojnë disa standarde defakto, të tilla si konvertimi i një date në një varg, por asnjë prej tyre nuk pranohet përgjithësisht. Gjuhë të tjera mund të kenë set të ndryshëm tipa vendas që duhen serializuar me kujdes për t'u marrë me këtë lloj konvertimi.

Skema JSON

Skema shërben për të përcaktuar strukturën e të dhënave JSON për vërtetimin, dokumentacionin dhe menaxhimin e ndërveprimit. Ai siguron një lloj kontrate për të dhënat e kërkuara nga aplikacioni dhe një mënyrë për ta ndryshuar atë.

Skema bazohet në koncepte nga Skema XML (XSD), por është e pronarit. Ashtu si XSD, të njëjtat pajisje serializimi/deserializimi përdoren si për skemën ashtu edhe për të dhënat.

Schema është një projekt interneti që aktualisht është në versionin 5 (lëshuar më 13 tetor 2016). Ekzistojnë disa vërtetues të disponueshëm për gjuhë të ndryshme programimi, secili me një nivel të ndryshëm përputhshmërie. Zgjatje standarde nuk ka skedarë, por disa ekspertë sugjerojnë assert.schema.json.

Lloji MIME

Lloji zyrtar MIME për tekstin JSON është "application/json". Megjithëse shumica e implementimeve moderne kanë adoptuar llojin zyrtar MIME, shumë aplikacione vazhdojnë të ofrojnë mbështetje të trashëguar për llojet e tjera MIME. Shumë ofrues shërbimesh, shfletues, serverë, aplikacione ueb, biblioteka, korniza dhe API përdorin, presin ose njohin një lloj MIME, përmbajtja e të cilit shfaqet si "text/json" ose "text/javascript". Shembuj të dukshëm përfshijnë Kërkim në Google API, Yahoo!, Flickr, Facebook API, DojoToolkit 0.4 e kështu me radhë.

JSON-RPC

JSON-RPC është një protokoll thirrjesh procedurash në distancë (RPC) i ndërtuar në JSON, i krijuar si një zëvendësim për XML-RPC ose SOAP. Është një protokoll i thjeshtë që përcakton vetëm disa lloje të dhënash dhe komanda. Ai lejon sistemin të dërgojë njoftime (informacione në server që nuk kërkojnë përgjigje) dhe thirrje të shumta në server që mund të përgjigjen jashtë rregullit.

A.J.A.J.

JavaScript asinkron dhe JSON (ose AJAJ) i referohen të njëjtës metodologji dinamike të faqeve në internet si Ajax, por në vend të XML, JSON është formati kryesor i të dhënave. AJAJ është një teknologji e zhvillimit të uebit që mundëson një faqe interneti të kërkojë të dhëna të reja pas ngarkimit në shfletues. Zakonisht i shfaq ato nga serveri në përgjigje të veprimeve të përdoruesit në atë faqe. Për shembull, ajo që përdoruesi shkruan në një fushë kërkimi dërgohet më pas nga kodi i klientit në server, i cili menjëherë përgjigjet me një listë rënëse të artikujve të bazës së të dhënave që përputhen.

Çështjet e sigurisë

Teksti në formatin JSON përcaktohet si një objekt serializimi i të dhënave. Sidoqoftë, dizajni i tij, si një nëngrup i lirë i gjuhës së skriptimit JavaScript, krijon disa çështje sigurie. Ata fokusohen në përdorimin e interpretuesit JavaScript për të ekzekutuar në mënyrë dinamike tekstin JSON si JavaScript inline. Kjo e ekspozon programin ndaj skripteve të gabuara ose me qëllim të keq. Ky është një problem serioz kur punoni me të dhënat e marra nga Interneti.

Kjo metodë e thjeshtë dhe popullore, por e rrezikshme përdor përputhshmërinë me funksionin JavaScripteval.

Disa zhvillues gabimisht besojnë se teksti JSON është gjithashtu kod i ngjashëm sintaksor JavaScript, megjithëse kjo është vetëm pjesërisht e vërtetë. Prandaj, besohet se një mënyrë e thjeshtë për një program JavaScript për të analizuar të dhënat në këtë format është përdorimi i funksionit të integruar JavaScripteval, i cili është krijuar për të vlerësuar shprehjet JavaScript. Në vend të përdorimit të një analizuesi specifik, analizuesi vetë përdoret kështu për të ekzekutuar të dhënat JSON, duke krijuar objekte natyrore JavaScript. Megjithatë, kjo metodë është e rrezikshme nëse ekziston mundësia që të dhënat JSON të përmbajnë kod "JavaScript" arbitrar, i cili më pas do të ekzekutohej në të njëjtën mënyrë. Nëse nuk ndërmerren hapa për të vërtetuar të dhënat fillimisht, metoda eval është e ndjeshme ndaj dobësive të sigurisë kur të dhënat dhe i gjithë mjedisi JavaScript nuk janë nën kontrollin e një burimi të vetëm të besuar.

Për shembull, nëse të dhënat nuk verifikohen, ato janë të ndjeshme ndaj sulmeve të malware. Kodi JavaScript. Shkelje të tilla mund të krijojnë gjithashtu rrezikun e vjedhjes së të dhënave, mashtrimit të vërtetimit dhe keqpërdorimeve të tjera të mundshme të të dhënave dhe burimeve.

Kështu, veçori e re JSON.parse u krijua si një alternativë më e sigurt për eval. Është krijuar posaçërisht për të përpunuar të dhënat JSON, jo JavaScript. Fillimisht ishte planifikuar të përfshihej në edicionin e katërt të standardit ECMAScript, por kjo nuk ndodhi. Ai u shtua për herë të parë në versionin 5 dhe tani mbështetet nga shfletuesit kryesorë.

JSON(Shënimi i objektit JavaScript - përfaqësim Objektet JavaScript) – format i lehtë përfaqësimi i të dhënave bazuar në një nëngrup të sintaksës JavaScript, më saktë në fjalë për fjalë vargjeve dhe objekteve. JSON është një alternativë ndaj formateve tradicionale ( Teksti i thjeshtë ose XML), të cilat përdoren gjatë shkëmbimit të të dhënave ndërmjet serverit dhe klientit. Ndryshe nga gjuhët e përputhshme me XML dhe XML, të cilat kërkojnë analizë, Përkufizimet JSON thjesht mund të përfshihen në Skriptet JavaScript. Formati JSON u propozua nga programuesi Douglas Crockford.

Ndoshta po shkoj shumë larg, por për të kuptuar me të vërtetë JSON, së pari le të kuptojmë (kujtojmë) sintaksën e vargjeve dhe objekteve në shënimin literal JavaScript.

Vargjet si Literale
Një grup në JavaScript mund të përcaktohet duke përdorur konstruktorin Array, si kjo:

Var aData = Array i ri ("string", true, 43, null);

Në JavaScript, vargjet janë të pashtypura, kështu që ju mund të ruani Llojet e ndryshme të dhëna. Në shembull, grupi përmban një varg, një boolean, një numër dhe një null.

Një grup, i përshkruar si literal, mund të përcaktohet duke përdorur kllapa katrore, brenda - vlerat e elementeve të grupit, të ndara me presje. Ja se si do të dukej i njëjti grup, por në shënimin e drejtpërdrejtë:

Var aData = ["string", e vërtetë, 43, null];

Flisni me element i veçantë grup, mund të specifikoni emrin e grupit dhe numrin e elementit:

Alert(aData); alarmi (aData);

Objektet si Literale
Objektet në JavaScript përcaktohen duke përdorur konstruktorin Object, si ky:

Var oAuto = Objekti i ri(); oAuto.firm = "Audi"; oAuto.model = "A6"; oAuto.vit = 2008; oAuto.çmimi = 78000;

I njëjti kod, por në shënimin e mirëfilltë do të duket kështu:

Var oAuto = ( "firma":"Audi", "model":"A6", "viti":2008, "çmimi":78000 );

Ky kod krijon një objekt me pronat firma, modeli, viti dhe çmimi dhe mund të aksesohet si kjo:

Alert(oAuto.model); alarm (oAuto.vit);

por ju gjithashtu mund të përdorni sintaksën e vargjeve duke hyrë në vetitë e një objekti në këtë mënyrë:

Alert(oAuto["model"]); alarm (oAuto["viti"]);

Në shënimin e mirëfilltë, përshkrimet e vargjeve dhe objekteve mund të futen brenda njëri-tjetrit, duke krijuar kështu vargjeve objekt ose grup objektesh. Shikoni këtë kod:

Var aAuto = [ ( "firma":"BMW", "model":"X5", "viti":2007, "çmimi":99000 ), ( "firma":"Audi", "modeli": "A6" , "viti":2008, "çmimi":78000 ), ( "firma":"Volkswagen", "modeli":"Touareg 7L", "viti":2006, "çmimi":45000 ) ];

Ne kemi krijuar një grup aAuto, i cili përmban tre objekte. Duke kombinuar sintaksën për hyrjen në vargje me sintaksën për hyrjen në objekte, le të përpiqemi të marrim vitin e prodhimit të makinës së dytë:

Alert(aAuto.vit); // merrni 2008

Mund të bëni të kundërtën dhe të përshkruani një objekt grupi:

Var oAuto = ( "firma":["BMW", "Audi", "Volkswagen"], "model":["X5", "A6", "Touareg 7L"], "viti":, "çmimi": );

në këtë rast, ne i qasemi së pari objektit dhe më pas grupit brenda tij:

Alert (oAuto.vit); // merrni 2008

Kjo është një parathënie kaq e gjatë, por tani do të jetë shumë më e qartë se çfarë ka të bëjë kjo me gjithçka JSON

JSON– një kombinim vargjesh dhe objektesh dhe synohet vetëm për ruajtjen e të dhënave. Rrjedhimisht, JSON nuk mund të ketë variabla dhe nuk lejon asnjë operacion mbi to. Le të përpiqemi të shkruajmë shembullin e mëparshëm duke përdorur sintaksën JSON:

("firma":["BMW", "Audi", "Volkswagen"], "modeli":["X5", "A6", "Touareg 7L"], "viti":, "çmimi": )

shënim, se emri i ndryshores dhe presja mungonin. Transferimi i një objekti të tillë duke përdorur protokollin HTTP do të jetë shumë i shpejtë, pasi përmban një minimum karakteresh. Pasi kemi marrë të dhëna të tilla në anën e klientit dhe duke i shkruar ato në një variabël (për shembull sData), marrim një varg informacioni.
shënim: saktësisht një varg, dhe jo një objekt fare ose një objekt me vargje të vendosura në të. Konvertoni një varg në një objekt duke përdorur funksionin eval ().

Var oAuto = eval("(" + sData + ")");

Si rezultat, do të merrni objektin që përshkruam pak më lart.

Avantazhet e JSON mbi XML
Pra, cili është saktësisht avantazhi i JSON mbi XML?

Këtu po flasim për ekskluzivisht për avantazhet dhe disavantazhet vetëm nga pikëpamja e organizimit të shkëmbimit të të dhënave në internet.

Fakti është se Gjuha XML rezulton të jetë shumë i tepërt kur krahasohet me JSON. Le të sigurohemi për këtë në shembull i thjeshtë. Ne do të paraqesim të njëjtat të dhëna në formatin XML dhe në formatin JSON.

BMW X5 2007 99000 Audi A6 2008 78000 Volkswagen Touareg 7L 2006 45000

Kështu duket në formatin XML, dhe më poshtë në formatin JSON:

( "përgjithshme": ( "makina":[ ( "firma":"BMW", "modeli":"X5", "viti":2007, "çmimi":99000 ), ( "firma":"Audi", "modeli":"A6", "viti":2008, "çmimi":78000 ), ( "firma":"Volkswagen", "modeli":"Touareg 7L", "viti":2006, "çmimi":45000 ) ]))

Kur përdorni formatin JSON, fitimi do të jetë 42 bajt, dhe pa hapësira do të jetë 86 bajt. Dhe nëse kujtojmë gjithashtu se të dhënat në formatin JSON nuk kërkojnë analizë shtesë nga ana e klientit, avantazhi i JSON ndaj XML për sa i përket transferimit të të dhënave nga serveri te klienti bëhet i dukshëm...

JSON (JavaScript Object Notation) është një format i transferimit të të dhënave. Siç sugjeron emri, formati bazohet në gjuhë Programimi JavaScript, megjithatë është gjithashtu i disponueshëm në gjuhë të tjera (Python, Ruby, PHP, Java).

JSON përdor shtesën .json. Kur përdoret në formate të tjera skedarësh (si p.sh. html), vargu JSON citohet ose i caktohet një ndryshoreje. Ky format transferohet lehtësisht midis serverit të internetit dhe klientit ose shfletuesit.

JSON i lehtë dhe i lehtë për t'u kuptuar – alternativë e madhe XML.

Ky udhëzues do t'ju prezantojë me përfitimet, lehtësitë, strukturën e përgjithshme dhe sintaksë JSON.

Sintaksa dhe struktura JSON

Një objekt JSON është në formë me vlerë kyçe dhe zakonisht shkruhet në kllapa kaçurrelë. Kur punoni me JSON, të gjitha objektet ruhen në një skedar .json, por ato mund të ekzistojnë edhe si objekte të veçanta në kontekstin e programit.

Objekti JSON duket si ky:

"first_name" : "Gjoni",
"last_name" : "Smith",
"lokacioni" : "Londër",
"online": e vërtetë,
"ndjekës": 987

Ky është një shembull shumë i thjeshtë. Një objekt JSON mund të përmbajë shumë rreshta.

Siç mund ta shihni, një objekt përbëhet nga çifte me vlerë kyçe që janë të mbyllura në kllapa kaçurrelë. Shumica e të dhënave në JSON shkruhen si objekte.

Një dy pika vendoset midis çelësit dhe vlerës. Pas çdo çifti ju duhet të vendosni një presje. Rezultati është:

"çelës" : "vlerë", "çelës" : "vlerë", "çelës": "vlerë"

Tasti JSON është në të majtë. Çelësi duhet të vendoset brenda citate të dyfishta. Çdo varg i vlefshëm mund të përdoret si çelës. Brenda një objekti, të gjithë çelësat duhet të jenë unikë. Tasti mund të përmbajë një hapësirë ​​(“emri i parë”), por programimi mund të ketë probleme me aksesin në një çelës të tillë. Prandaj, në vend të një hapësire, është më mirë të përdorni një nënvizim (“emri_emri”).

Vlerat JSON janë në anën e djathtë të kolonës. Çdo lloj i thjeshtë i të dhënave mund të përdoret si vlerë:

  • Vargjet
  • Numrat
  • Objektet
  • Vargjeve
  • Të dhënat Boolean (të vërteta ose të rreme)

Vlerat mund të përfaqësohen gjithashtu nga lloje komplekse të të dhënave (për shembull, objekte ose vargje JSON).

JSON mbështet sintaksë individuale për secilin nga llojet e të dhënave të listuara më sipër: nëse vlera përfaqësohet nga një varg, atëherë ajo do të kuotohet, por nëse është një numër, atëherë jo.

Në mënyrë tipike, të dhënat në skedarët .json shkruhen në një kolonë, por JSON gjithashtu mund të shkruhen në një rresht:

( "first_name" : "John", "last_name" : "Smith", "online" : e vërtetë, )

Kështu shkruhen zakonisht të dhënat JSON në lloje të tjera skedarësh.

Duke shkruar të dhënat JSON në një kolonë, ju përmirësoni lexueshmërinë e skedarit (veçanërisht nëse ka shumë të dhëna në skedar). JSON injoron hapësirat midis kolonave, kështu që ju mund t'i përdorni ato për të ndarë të dhënat tuaja në një numër të menaxhueshëm kolonash.

"first_name" : "Gjoni",
"last_name" : "Smith",
"online": e vërtetë

Ju lutemi vini re: objektet JSON janë shumë të ngjashme me Objektet JavaScript, por nuk janë të njëjtit format. Për shembull, mund të përdorni funksione në JavaScript, por jo në JSON.

Avantazhi kryesor i JSON është se të dhënat në këtë format mbështeten nga shumë gjuhë programimi të njohura, kështu që ato mund të transferohen shpejt.

Tani jeni njohur me sintaksën bazë JSON. Por skedarët JSON mund të kenë komplekse, struktura hierarkike, i cili përfshin vargje dhe objekte të mbivendosur.

Llojet komplekse në JSON

JSON mund të ruajë objekte dhe vargje të ndërlidhura, të cilat do të kalohen si vlera e çelësit që u është caktuar.

Objekte të mbivendosura

Më poshtë do të gjeni një shembull - skedarin users.json, i cili përmban të dhënat e përdoruesit. Për çdo përdorues

("john", "jesse", "drew", "jamie") kalohet si vlerë një objekt i mbivendosur, i cili, nga ana tjetër, gjithashtu përbëhet nga çelësa dhe vlera.

shënim: Objekti i parë i mbivendosur JSON theksohet me të kuqe.

"John" :(
"emri i përdoruesit" : "Gjoni",
"lokacioni" : "Londër",
"online": e vërtetë,
"ndjekës": 987

"Xhesi" :(
"emri i përdoruesit" : "Jesse",
"lokacioni" : "Uashington",
"online": false,
"ndjekës": 432

"vizatoi" :(
"username" : "Drew",
"lokacioni" : "Paris",
"online": false,
"ndjekës": 321

"Xhemi" :(
"emri i përdoruesit" : "Jamie",
"lokacioni" : "Berlin",
"online": e vërtetë,
"ndjekës": 654

Vini re se mbajtëset kaçurrelë përdoren si në objektin e mbivendosur ashtu edhe në objektin kryesor. Presja në objektet e mbivendosur përdoren në të njëjtën mënyrë si në objektet e rregullta.

Vargjet e mbivendosura

Të dhënat mund të futen në JSON duke përdorur Vargjet JavaScript, të cilat do të kalohen si vlera. JavaScript përdor kllapa katrore () në fillim dhe në fund të një grupi. Një grup është një koleksion i renditur i të dhënave që mund të përmbajë lloje të ndryshme të dhënash.

Vargu përdoret për të transmetuar sasi e madhe të dhëna që mund të grupohen. Për shembull, le të përpiqemi të regjistrojmë të dhënat e përdoruesit.

{
"first_name" : "Gjoni",
"last_name" : "Smith",
"lokacioni" : "Londër",
"faqet e internetit" : [

"përshkrim" : "punë",
"URL": "https://www.johnsmithsite.com/"

},
{

"përshkrim" : "tutoriale",
"URL" : "https://www.johnsmithsite.com/tutorials"

"mediat sociale" : [

"përshkrim" : "Twitter",
"link" : "https://twitter.com/johnsmith"

"përshkrim" : "facebook",
"link" : "https://www.facebook.com/johnsmith"

"përshkrim" : "github",
"link" : "https://github.com/johnsmith"

Çelësat “websites” dhe “social_media” u caktohen vargjeve si vlera, të cilat vendosen në kllapa katrore.

Duke përdorur vargje dhe objekte të mbivendosur, mund të krijoni një hierarki komplekse të të dhënave.

JSON apo XML?

XML (EXtensible Markup Language) ju lejon të ruani të dhënat në një formë që është e lehtë për t'u kuptuar nga njerëzit dhe makinat. Formati XML i mbështetur sasi e madhe gjuhë programimi.

XML dhe JSON kanë shumë të përbashkëta. Megjithatë, XML kërkon shumë më tepër tekst, që do të thotë se skedarët e tillë janë më të mëdhenj dhe më të vështirë për t'u lexuar dhe shkruar. Për më tepër, XML përpunohet vetëm duke përdorur një përkthyes XML, ndërsa JSON mund të përpunohet duke përdorur një funksion të thjeshtë. Ndryshe nga JSON, XML nuk mund të ruajë vargje.

Le të krahasojmë dy skedarë: ato përmbajnë të njëjtat të dhëna, por i pari është i shkruar në format XML dhe i dyti në JSON.

përdoruesit.xml

Gjoni Londra

Isai Uashington

Drew Parisi

Xhemi Berlini

përdoruesit.json
("përdoruesit": [

("emri i përdoruesit" : "Gjoni", "lokacioni": "London"),
("emri i përdoruesit": "Jesse", "lokacioni": "Washington"),
("emri i përdoruesit" : "Drew", "lokacioni": "Paris"),
("emri i përdoruesit": "JamieMantisShrimp", "lokacioni": "Berlin")

JSON është një format shumë kompakt dhe nuk kërkon aq shumë etiketa sa XML. Për më tepër, XML, ndryshe nga JSON, nuk mbështet vargje.

Nëse jeni njohur me HTML, do të vini re se formati XML është shumë i ngjashëm me të (veçanërisht etiketat). JSON është më i thjeshtë, kërkon më pak tekst dhe është më i lehtë për t'u përdorur në aplikacionet AJAX, për shembull.

Sigurisht, formati duhet të zgjidhet në varësi të nevojave të aplikacionit.

Mjete për JSON

JSON përdoret zakonisht në JavaScript, por formati përdoret gjerësisht në gjuhë të tjera programimi.

Më shumë informacion rreth përputhshmërisë dhe përpunimit JSON mund të gjenden në faqen e internetit të projektit dhe bibliotekën jQuery.

Është e rrallë të shkruash JSON nga e para. Në mënyrë tipike, të dhënat ngarkohen nga burimi ose konvertohen në JSON. Ju mund të konvertoni të dhënat CSV ose të kufizuara me skeda në JSON duke përdorur mjet i hapur Zoti. Konvertuesi i të dhënave. Për të kthyer XML në JSON dhe anasjelltas, përdorni utilities-online.info. Kur punoni me mjete automatike sigurohuni që të kontrolloni rezultatin.

Skedarët JSON (përfshirë të dhënat e konvertuara) mund të inspektohen duke përdorur shërbimin JSONLint. Për të testuar JSON në një kontekst të zhvillimit të uebit, referojuni JSFiddle.

konkluzioni

JSON është një format i thjeshtë dhe i lehtë i të dhënave. Skedarët JSON janë të lehtë për t'u transferuar, ruajtur dhe përdorur.

Sot JSON përdoret shpesh në API.

Në këtë artikull dua të flas për formatin e shkëmbimit të të dhënave të tekstit - JSON, dhe veçanërisht për punën me këtë format në PHP.

JSON është një format kompakt të dhënash teksti. Mund të përdoret si në shërbimet e transmetimit të të dhënave në Internet ashtu edhe për ruajtjen e informacionit në një formë të strukturuar.

JSON( anglisht Shënimi i objektit në JavaScript) është një format i shkëmbimit të të dhënave të bazuara në tekst, i bazuar në JavaScript dhe që përdoret zakonisht me këtë gjuhë. Si shumë të tjerë formatet e tekstit,JSON është i lehtë për t'u lexuar nga njerëzit.

Pavarësisht origjinës së tij në JavaScript (më saktë, nga një nëngrup i gjuhës së standardit ECMA-262 të 1999), formati konsiderohet i pavarur nga gjuha dhe mund të përdoret pothuajse me çdo gjuhë programimi. Në dispozicion për shumë gjuhë kod i gatshëm për të krijuar dhe përpunuar të dhëna në formatin JSON.

Përfitimet praktike duke përdorur JSON hapet kur përdoret Teknologjitë AJAX. Formati JSON është më konciz dhe më i lexueshëm se XML, dhe është vendas në Javascript. Përveç kësaj, është e mundur të futni funksione plotësisht funksionale në kodin JSON.

Po, është në teknologjinë AJAX, për mendimin tim, që është aplikimi i saj kryesor. Meqenëse teknologjia AJAX përfshin dërgimin e një kërkese klienti në server. Më pas, kërkesa përpunohet në server dhe rezultati i dërgohet klientit si përgjigje.

Lloji i të dhënave në format JSON

JSON mbështet të gjitha formatet kryesore të të dhënave: vargjet, numrat, booleans, si dhe vargje dhe objekte (kombinimet kyç:vlerë të ndara me presje dhe të mbyllura në kllapa kaçurrelë).

Këtu është një shembull i paraqitjes së të dhënave në formatin JSON:

("id":"1", "emri":"ivan", "vend":"Rusi", "zyre":["yandex", "menaxhimi"])

Le të shohim se çfarë mund të përcjellë kjo linjë: një person me emrin "ivan", nën identifikuesin "1", që jeton në vendin "Rusia" punon në kompaninë "yandex" në departamentin "menaxhimi".

Le të japim një shembull tjetër. Ekziston një formular në sit reagimet, duke punuar duke përdorur teknologjinë AJAX. Vizitori plotëson informacionin, më pas ai dërgohet në server për verifikim nëse nuk gjenden gabime, informacioni ruhet në bazën e të dhënave dhe dërgohet një përgjigje që tregon ruajtjen e suksesshme. Por nëse gjenden gabime, kthehet një përgjigje me llojet e gabimeve.

Shembull i përgjigjes së gabimit në formatin JSON:

("gabim":"1", "kodi i gabimit":["empty_pers", "empty_mail", "telefon_empty", "letër_empty", "scode_bosh"])

Që, për shembull, do të thotë:

  • Duhet të plotësoni fushën “Personi i kontaktit”.
  • Duhet të plotësoni fushën “E-mail”.
  • Duhet të plotësoni fushën "Telefon".
  • Fut tekstin e mesazhit
  • Është e nevojshme të plotësoni fushën "Numri në foto"

Nëse nuk ka gabime, përgjigja kthehet:

("gabim":"0")

Që tregon dërgimin e suksesshëm të të dhënave.

Në PHP, zgjerimi JSON përdoret për të përfaqësuar të dhënat në formatin JSON. NË Versionet PHP Mbështetja JSON më e vjetër se 5.2.0 është e integruar në thelbin, në më shumë versionet e mëparshme duhet të lidhet me skenarin tuaj skedar shtesë me funksione.

Pra, në PHP, dy funksione janë përgjegjës për të punuar me të dhënat në formatin JSON: json_encode() dhe json_decode().

Konvertimi i të dhënave në formatin JSON

$json_data = grup ("id"=>1,"name"=>"ivan", "country"=>"Rusi", "office"=>array ("yandex", "menaxhimi")); echo json_encode ($json_data);

Konvertimi i të dhënave nga formati JSON

$json_string="("id":1,"name":"ivan","country":"Rusi","zyre":["yandex","menaxhimi"]) "; $obj=json_dekodi($json_string);

Tani $obj do të përmbajë të dhëna JSON të përkthyera në një objekt PHP, të cilit mund t'i qaseni si më poshtë:

Echo $obj->emri; //Shfaq emrin ivan echo $obj->office; //Shfaq kompaninë yandex

Siç mund ta shihni, $obj->office është një grup.

Foreach($obj->zyra si $val) echo $val;

Puna me JSON ju lejon të shkëmbeni të dhëna me serverin në të « formë e pastër» . Nuk ka nevojë të dërgoni pjesë të mëdha të kodit HTML.

Njerëzit e njohur me programimin do të njohin menjëherë skedarët me shtesën JSON. Ky format është një shkurtim i shënimit të objekteve JavaScript dhe në thelb është një shkëmbim i të dhënave i bazuar në tekst që përdoret në gjuhën e programimit JavaScript. Prandaj, ose softuerët e specializuar ose redaktuesit e tekstit do t'ju ndihmojnë të përballoni hapjen e skedarëve të tillë.

Tipari kryesor i skripteve në formatin JSON është këmbyeshmëria e tij me formatin XML. Të dy llojet janë dokumente tekstuale, i cili mund të hapet me përpunues teksti. Megjithatë, ne do të fillojmë me softuer të specializuar.

Metoda 1: Altova XMLSpy

Një mjedis zhvillimi mjaft i njohur, i cili përdoret gjithashtu nga programuesit e uebit. Ky mjedis gjeneron gjithashtu skedarë JSON dhe për këtë arsye është i aftë të hapë dokumente të palëve të treta me këtë shtesë.


Ky softuer ka dy disavantazhe. E para është një bazë e shpërndarjes me pagesë. versioni i provësështë aktive për 30 ditë, por për ta marrë atë duhet të jepni emrin tuaj dhe Kuti postare. E dyta është rëndimi i përgjithshëm: një personi që thjesht duhet të hapë një skedar, mund t'i duket shumë i sofistikuar.

Metoda 2: Notepad++

Një redaktues teksti shumëfunksional është i pari në listën e opsioneve të përshtatshme për hapjen e skripteve në formatin JSON.


Notepad++ ka shumë përparësi - shfaq sintaksën e shumë gjuhëve të programimit, mbështet plugins dhe është i vogël në madhësi... Megjithatë, për shkak të disa veçorive, programi funksionon ngadalë, veçanërisht nëse hapni një dokument të madh në të.

Metoda 3: AkelPad

Një redaktues teksti tepër i thjeshtë dhe në të njëjtën kohë i pasur me aftësi nga një zhvillues rus. Formatet që ai mbështet përfshijnë JSON.


Ashtu si Notepad++, ky opsion i shënimeve është gjithashtu falas dhe mbështet shtojcat. Punon më shpejt, por i madh dhe skedarë komplekse mund të mos hapet herën e parë, prandaj mbani parasysh këtë veçori.

Metoda 4: Komodo Edit

Softuer falas për shkrim kodi i programit nga Komodo. Eshte ndryshe ndërfaqe moderne dhe mbështetje të gjerë të veçorive për programuesit.


Fatkeqësisht, programi nuk ka gjuhën ruse. Sidoqoftë, përdoruesi mesatar do të ketë më shumë gjasa të shtyhet nga funksionaliteti i tepërt dhe elementët e pakuptueshëm të ndërfaqes - në fund të fundit, ky redaktues ka për qëllim kryesisht programuesit.

Metoda 5: Tekst sublim

Një tjetër përfaqësues i kodit të orientuar redaktorët e tekstit. Ndërfaqja është më e thjeshtë se ajo e kolegëve të saj, por aftësitë janë të njëjta. Në dispozicion dhe version portativ aplikacionet.


Për fat të keq, Tekst sublim nuk disponohet në Rusisht. Modeli i shpërndarjes së shareware mund të quhet gjithashtu një disavantazh: versioni falas nuk është i kufizuar në asnjë mënyrë, por herë pas here shfaqet një kujtesë për nevojën për të blerë një licencë.

Metoda 6: NFOPad

Një bllok shënimesh i thjeshtë është gjithashtu i përshtatshëm për të parë dokumente me shtesën JSON.


NFOPad është i përshtatshëm për të parë dokumentet JSON, por ka një paralajmërim - kur hapni disa prej tyre, programi ngrin. Me çfarë lidhet kjo veçori nuk dihet, por kini kujdes.

Metoda 7: Notepad

Dhe së fundi, standarde përpunues teksti, i integruar në Windows OS, është gjithashtu i aftë të hapë skedarë me një shtesë JSON.


Si përfundim, le të themi sa vijon: skedarët me shtrirjen JSON janë dokumente të zakonshme teksti që mund të përpunohen jo vetëm nga programet e përshkruara në artikull, por edhe nga një mori të tjerësh, përfshirë atë të tij. analoge falas Dhe . Ekziston një probabilitet i lartë që skedarë të tillë të jenë në gjendje të përballojnë .

Artikujt më të mirë mbi këtë temë