КампутарыПраграмаванне

Фармат JSON: апісанне, прыклад

Зменныя, масівы і аб'екты - звыклая і зручная форма прадстаўлення дадзеных. Апісваць дадзеныя прынята ў мове браўзэра JavaScript, што рабіць не абавязкова ў мове сервера PHP. Фармат JSON дазваляе абагульніць іх у адно цэлае і не рабіць акцэнт на мове праграмавання. Пры гэтым дадзеныя ператвараюцца ў пары: "імя = значэнне". Значэнне ў кожнай з іх таксама можа быць сукупнасцю такіх пар.

Прынята JSON асацыяваць з фігурнымі дужкамі і аб'ектамі JavaScript. Апошняе цалкам абгрунтавана, так як фармат JSON = Object Notation JavaScript. У апошнія асабліва дынамічныя гады шмат змянілася. Што стваралася дзеля канкрэтнай мэты, часта прыносіла нечаканыя плён або адкрывала новыя гарызонты.

Абмен дадзенымі: браўзэр - сервер

Тэхналогія AJAX стала традыцыйнай, звычайнае абнаўленне старонкі цалкам перастала карыстацца папулярнасцю. Наведвальнік, адкрываючы сайт, ініцыюе серыю частковых абменаў дадзенымі, калі тыя ці іншыя старонкі змяняюцца толькі ў тым месцы, якое актуальна.

Лічыцца, што з'яўленне JSON звязана з выкарыстаннем менавіта AJAX, але на самой справе асацыятыўныя масівы JavaScript і яго аб'ектная натацыя (асаблівасці сінтаксісу апісання і выкарыстання аб'ектаў) маюць значна больш родавае стаўленне да JSON, чым абмен дадзенымі паміж браўзэрам і серверам.

Так як кантэнт старонак сучасных сайтаў сапраўды стаў «масіўным» (аб'ёмным), то і эфектыўнасць фармату для абмену дадзенымі набыла асаблівае значэнне. Нельга сказаць, што JSON стаў новым прадстаўленнем дадзеных, але тое што ён даўно быў элементам сінтаксісу JavaScript, мае істотнае значэнне.

Выкарыстанне кірыліцы ў назвах зменных - вельмі нечаканае з'ява (нонсэнс), але гэта працуе ў апошніх версіях Chrome, Firefox і, нават, у Internet Explorer 11.

Кірыліца і JSON

Зразумела, выкарыстоўваць гэта зусім нечаканае з'ява не варта, прыпамінаючы, як лёгка значэння зменных, запісаныя рускімі літарамі, ператвараюцца ў кракозябры: што тут казаць пра імёны, асабліва знешнія.

Сумнеўна, што ініцыятыву ў кірылічных імёнах падтрымае знешняе асяроддзе браўзэра, з якім яму пастаянна даводзіцца мець справу. Але гэты факт заслугоўвае ўвагі па той простай прычыне, што JSON фармат - гэта магчымасць пісаць імёны і значэння так, як заўгодна распрацоўніку. Гэта прынцыпова, паколькі ў кожнай задачы апісанне вобласці ўжывання так, як яна гэтага патрабуе, істотна спрашчае адладку і памяншае колькасць памылак.

Не важна, якое менавіта мела пад сабой падставу сінтаксічнае навіна - JSON, важна, што яно дало законнае права і рэальную магчымасць паставіць адпаведнасць: "любое імя = любое значэнне".

Трэба аддаць належнае мове JavaScript: тое, што прадугледжана сінтаксісам, не абавязвае распрацоўніка і нічога яму не навязвае. Распрацоўшчык свабодна выкарыстоўвае сінтаксіс мовы для аптымальнага фарміравання мадэлі дадзеных і алгарытму іх выкарыстання.

PHP і JSON

Прымаючы дадзеныя ў фармаце JSON, сервер (пасродкам PHP, у прыватнасці) дае магчымасць іх апрацоўваць як ёсць і вяртаць назад у браўзэр вынік у аналагічным фармаце. Зыходны масіў PHP:

  • $ cJSON = array ( "a" => "alfa", "b" => "beta", "g" => "gamma").

Пераўтварэнне ў фармат JSON для перадачы ў браўзэр:

  • $ cJS = json_encode ($ cJSON).

Вынік:

  • { "a": "alfa", "b": "beta", "g": "gamma"}.

Дапускаецца намаляваная на фота укладзенасць.

Тут сфармаваны масіў быў дададзены новым элементам «сам у сябе» з аўтаматычным індэксам "0", а затым яшчэ раз з паказаным індэксам "z".

Зваротная функцыя - json_decode () выконвае пераўтварэнне радкі JSON ў масіў PHP. Аналагічных вынікаў можна дамагчыся, маніпулюючы функцыямі PHP: implode () і explode (). У некаторых выпадках гэты варыянт пераважней.

узровень ўкладзенасці

Элементы могуць быць укладзеныя адзін у аднаго як на баку браўзэра, так і на баку сервера. На практыцы фармат JSON (апісанне стандарту RFC 4627) падае значна больш за 4 узроўняў ўкладзенасці, але не варта злоўжываць гэтай магчымасцю.

Лепш за ўсё ніколі не выходзіць за межы разумнай дастатковасці, гэта робіць код чытэльным, спрашчае яго адладку і разуменне іншымі распрацоўшчыкамі.

JSON прынята адносіць да канструкцый дадзеных, якія прасцей XML, зразумелыя адначасова і людзям, і кампутараў. Гэта сапраўды так, калі аб'ём дадзеных малы, а ўзровень ўкладзенасці распрацоўшчык абраў пісьменна. Ва ўсіх астатніх выпадках лічыць колькасць дужак і разумець структуру дадзеных складана як на баку браўзэра, так і на баку сервера.

файлы JSON

Прымяненне JSON на практыцы часта не абмяжоўваецца даступнай ўспрымання кароткім радком. Любыя канструкцыі дадзеных заўсёды носяць прагматычны характар. Пры гэтым JSON можа эфектыўна прымяняцца як у рэальных дадзеных задачы (штат прадпрыемства), так і для рэалізацыі часавых дадзеных (кэш аб'екта).

Штат прадпрыемства і JSON-фармат: прыклад

Звычайна запіс пра аднаго чалавека - гэта прозвішча, імя, імя па бацьку, год нараджэння, спецыяльнасць, адукацыя, ... і некалькі яшчэ прасценькіх значэнняў. Нават у асабліва патрабавальных кампаніях запіс пра аднаго чалавека не будзе перавышаць дзясятка-двух палёў. Гэта даступна ўспрымання і можа быць змешчана ў радок базы дадзеных.

Калі ў кампаніі працуе некалькі чалавек - гэта адно, але калі дзесяткі тысяч - гэта зусім іншае. Можна працягваць выкарыстоўваць базу дадзеных, але захоўванне яе ў выглядзе файла выглядае больш практычным і больш даступнымі для выкарыстання.

Фармат файла JSON - гэта звычайны тэкставы файл. Выпадак са штатным раскладам, куды ні ішло. Прачытаць яго заўсёды можна. Адкрыць і змяніць таксама даступна ў любым тэкставым рэдактары, які не мае звычкі дадаваць сваю службовую інфармацыю ў змест файла. Наогул, * .json - гэта чысты тэкст як унутры браўзэра, так і ўнутры файла - радок.

На фота прадстаўлены кэш аб'екта, які фарміруе карцінку, прыклад.

Гэта ўзор выхавання файла, сфармаванага сайтам, якія прадастаўляюць паслугу каляровы аб'ёмнай друку на кружках і керамічных вырабах. Натуральна, вырашыць, маючы такі JSON-фармат, чым адкрыць яго, сапраўды праблематычна. Аднак у гэтым і падобных выпадках праблем з чытаннем файла не ўзнікае: PHP чытае файл, разбірае яго і перадае ў браўзэр. Змененыя наведвальнікам дадзеныя вяртаюцца на сервер і запісваюцца назад.

У такім варыянце выкарыстання файл выступае як зменная, якая захоўваецца па-за кода. Пры неабходнасці, пераменная атрымлівае значэнне з файла, а калі яна будзе зменена наведвальнікам ў дыялогу, прадугледжаным сайтам, то ўсе змены запішуцца як ёсць. Няма неабходнасці чытаць і правяраць змесціва файла.

JSON часта выкарыстоўваецца для захоўвання і выкарыстання службовай інфармацыі - гэта не штатны расклад, яго не абавязкова бачыць ні распрацоўніку, ні наведвальніку сайта.

XML і JSON

"Усяму свой час" - класічнае веданне, прынятае за аксіёму яшчэ да з'яўлення праграмавання. "Ні што не прыходзіць проста так", - гэта таксама было да таго, як чалавек напісаў першую зразумелую праграму на штучнай мове.

Фарматы дадзеных з'яўляюцца ад рэальнай патрэбы і грунтуюцца на дасягнутых ведах. У HTML - свая сьцежка, у XML - свая дарога, а JSON - гэта аб'ектная логіка JavaScript, пашыраная на іншыя мовы. Параўноўваць адно з другім не лепшы занятак. Кожнаму сваё.

XML цудоўна спраўляецца са сваімі задачамі і сыходзіць у гісторыю відавочна не збіраецца. А JSON выкарыстоўваўся і да 2006 года, проста не кожны распрацоўшчык лічыў сваім абавязкам дэклараваць тыя ці іншыя варыянты падання сваіх дадзеных.

Меліся выпадкі ў практыцы, калі на бэйсике былі напісаныя праграмы, не выкарыстоўваюць JSON як такой, але выдатна захоўваюць пары "імя = значэнне" і якія прадстаўляюць іх у распараджэнне патрэбным алгарытмам ў патрэбны час.

Спецзнакі ( «` »,« ~ »,« | », ...) і фарматы дадзеных

Звычка працаваць з асацыятыўнымі масівамі і аб'ектамі на JavaScript робіць выкарыстанне JSON натуральным і зручным. Гэта сапраўды выдатны фармат, але ўменне падзяляць і злучаць, маніпулюючы радкамі і масівамі, мае куды больш глыбінныя карані.

Функцыі join / split мовы JavaScript і implode / explode мовы PHP дазваляюць зручна і эфектыўна выкарыстоўваць як фарматы дадзеных XML, JSON, так і ўласны варыянт. Апошні часта аптымальней, а першыя два ідэальна падыходзяць для варыянтаў агульнага карыстання. Калі ідзе перадача інфармацыі іншаму распрацоўніку, серверу, у файл або ў базу дадзеных, лепш XML і JSON не знайсці. З імі ўсё працуюць, таму перадача / прыём інфармацыі не мае патрэбы ў каментарах.

Выкарыстанне JSON ў Android

Чытанне і запіс дадзеных у фармаце JSON ў Android - не толькі норма рэчаў, але і мноства аб'ектаў, арыентаваных на працу менавіта з такім фарматам дадзеных.

Многія звязваюць фенаменальны поспех сацыяльных сетак з тым, што сябры і наведвальнікі адпаведных сайтаў (Facebook, LinkedIn, Twitter, ...) здабываюць выгаду з апублікаваных там матэрыялаў.

Пры гэтым выкарыстоўваецца менавіта фармат JSON. Магчыма, гэта так і ёсць, але пытанне не ў фенаменальным соцсетей, а ў тым што сапраўды прадстаўленне інфармацыі ў фармаце "імя = значэнне" зручна як для праграмавання, так і для выкарыстання. У адрозненне ад строгага і закамплексаваныя «XML» гэта сапраўды чалавека-зручны фармат.

асацыятыўныя масівы

Склалася так, што зменныя належыць апісваць (JavaScript) ці хаця б ўказваць пачатковае значэнне (PHP). У абодвух выпадках пераменная можа змяніць свой тып вельмі лёгка. Пры неабходнасці мова выконвае гэта пераўтварэнне аўтаматычна.

Але чаму б зменнай не мяняць таксама сваё імя, не з'яўляцца ў ходзе выканання алгарытму і не знікаць, калі неабходнасць у ёй адпадзе? Асацыятыўныя масівы дазваляюць вырашыць гэтую праблему, але тады пры выкарыстанні такіх адносна дынамічных зменных, імя масіва і адпаведныя сінтаксічныя канструкцыі будуць прытрымлівацца ў месцы іх прымянення.

Асабліва гэта акалічнасць ярка выяўлена на PHP, але з гэтым можна мірыцца, як, зрэшты, з сімвалам «$» ў імя зменнай і камбінацыяй «$ this->» ўнутры аб'екта. Праграмуючы адначасова на JavaScript і PHP, спачатку сапраўды дзіву даешся, як усё адрозніваецца, але потым усё становіцца такім звыклым і натуральным ...

Асацыятыўны масіў -> JSON

У гэтым прыкладзе з дапамогай бібліятэкі PHPOffice / PHPWord ствараецца дакумент * .docx, і масіў aProperties змяшчае ўласцівасці гэтага дакумента (аўтар, кампанія, загаловак, катэгорыя, дата стварэння ...).

Другі масіў змяшчае дадзеныя па старонцы:

  • арыентацыя (альбомная або звычайная);
  • памеры па вертыкалі і гарызанталі;
  • водступы (поля злева, зверху, знізу, справа);
  • калантытула.

Фарміраванне дакумента выконваецца на сэрвэры, дзе ўсталяваная бібліятэка PHPOffice / PHPWord. На сайце прадугледжана кіраванне значэннямі гэтых масіваў пасродкам JavaScript. Вынік у фармаце JSON вяртаецца назад на сервер і выкарыстоўваецца ў алгарытмах на PHP, у яго канструкцыях, гэта значыць у масівах.

дынамічныя зменныя

Фармат JSON вырашае праблему дынамічных зменных. Тут можна ствараць, змяняць і выдаляць зменныя без лішніх сінтаксічных нагрувашчванняў. Гэта прыгожа глядзіцца і выкарыстоўваецца ў JavaScript.

У гэтым прыкладзе функцыя GetOjInfo () выбірае імя значэння і значэнне з аб'екта. Першапачаткова аб'ект JSON-радкі, прысвоенай зменнай ojInfo, размяшчае трыма элементамі: Name, age і work. Крыху пазней дадаецца пераменная Status.

Пасля першага аператара delete радок ojInfo губляе элемент age, пасля другога delete - элемент work. Калі выказаць здагадку, што дадзеная радок ёсць падборка зменных, якія маюць вызначаны сэнс, то, выкарыстоўваючы JSON можна рэальна ствараць, змяняць і выдаляць любыя іх наборы па-за аперацыйнага поля (сінтаксісу) апісання і апрацоўкі мовы JavaScript.

Фармат JSON на такі варыянт не быў разлічаны, але такое магчыма, практычна і зручна.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.delachieve.com. Theme powered by WordPress.