Programmēšana

Kas ir JSON? Labāks datu apmaiņas formāts

JavaScript objektu apzīmējums ir strukturētu datu bez shēmas attēlots teksts, kas balstīts uz atslēgu vērtību pāriem un sakārtotiem sarakstiem. Neskatoties uz to, ka JSON ir atvasināts no JavaScript, lielākajā daļā galveno programmēšanas valodu to atbalsta vai nu vietēji, vai caur bibliotēkām. JSON parasti, bet ne tikai, tiek izmantots informācijas apmaiņai starp tīmekļa klientiem un tīmekļa serveriem.

Pēdējo 15 gadu laikā JSON tīmeklī ir kļuvis visuresošs. Mūsdienās tas ir izvēles formāts gandrīz katram publiski pieejamam tīmekļa pakalpojumam, un to bieži izmanto arī privātiem tīmekļa pakalpojumiem.

JSON popularitātes dēļ daudzas datubāzes ir nodrošinājušas vietējo JSON atbalstu. Relāciju datu bāzes, piemēram, PostgreSQL un MySQL, tagad tiek piegādātas ar vietējo atbalstu JSON datu glabāšanai un vaicājumiem. NoSQL datu bāzes, piemēram, MongoDB un Neo4j, atbalsta arī JSON, lai gan MongoDB aizkulisēs izmanto nedaudz modificētu JSON bināro versiju.

Šajā rakstā mēs ātri apskatīsim JSON un apspriedīsim, no kurienes tas radās, tā priekšrocības salīdzinājumā ar XML, trūkumus, kad jums tas jāizmanto un kad jāapsver alternatīvas. Bet vispirms iegremdēsimies sīkumā, kā JSON izskatās praksē.

JSON piemērs

Šeit ir JSON kodētu datu piemērs:

{

“FirstName”: “Jonathan”,

“LastName”: “Freeman”,

“LoginCount”: 4,

“IsWriter”: taisnība,

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

“Mājdzīvnieki”: [

    {

“Nosaukums”: “Lilly”,

“Tips”: “Jenots”

    }

  ]

}

Iepriekš minētā struktūra skaidri definē dažus personas atribūtus. Tajā ir vārds un uzvārds, reižu skaits, kad persona ir pieteikusies, neatkarīgi no tā, vai šī persona ir rakstniece, uzņēmumu saraksts, ar kuriem persona strādā, un personas mājdzīvnieku saraksts (šajā gadījumā tikai viens). Tādu struktūru kā iepriekš minētā var nodot no servera tīmekļa pārlūkprogrammai vai mobilajai lietojumprogrammai, kas pēc tam veiks dažas darbības, piemēram, parādīs datus vai saglabās tos vēlākai izmantošanai.

JSON ir vispārējs datu formāts ar minimālu vērtību tipu skaitu: virknes, skaitļi, Būla vērtības, saraksti, objekti un null. Lai gan apzīmējumi ir JavaScript apakškopa, šie veidi ir pārstāvēti visās izplatītajās programmēšanas valodās, padarot JSON par labu kandidātu datu pārsūtīšanai pa valodas spraugām.

JSON faili

JSON dati tiek glabāti failos, kuru beigās ir paplašinājums .json. Saskaņā ar JSON cilvēkiem lasāmo nostāju, tie ir vienkārši teksta faili, kurus var viegli atvērt un pārbaudīt. Kā skaidro SQLizer emuārs, tas ir arī JSON plašākas savietojamības atslēga, jo gandrīz katra valoda, kuru varat nosaukt, var lasīt un apstrādāt vienkārša teksta failus, un tos ir viegli nosūtīt pa internetu.

Kāpēc man vajadzētu izmantot JSON?

Lai saprastu JSON lietderību un nozīmi, mums būs nedaudz jāsaprot interaktivitātes vēsture tīmeklī.

2000. gadu sākumā interaktivitāte tīmeklī sāka pārveidoties. Tajā laikā pārlūkprogramma galvenokārt kalpoja kā mēms klients, lai parādītu informāciju, un serveris veica visu smago darbu, lai sagatavotu saturu parādīšanai. Kad lietotājs pārlūkprogrammā noklikšķina uz saites vai pogas, serverim tiek nosūtīts pieprasījums, serveris sagatavo nepieciešamo informāciju kā HTML un pārlūks HTML kodu atveido kā jaunu lapu. Šis modelis bija gauss un neefektīvs, tāpēc pārlūkprogrammai bija jāpārveido viss lapā, pat ja mainījās tikai lapas sadaļa.

Tā kā pilnas lapas atkārtota ielāde bija dārga, tīmekļa izstrādātāji izmantoja jaunākas tehnoloģijas, lai uzlabotu vispārējo lietotāju pieredzi. Tikmēr spēja veikt tīmekļa pieprasījumus fonā, kamēr tiek rādīta lapa, kas nesen tika ieviesta programmā Internet Explorer 5, izrādījās reāla pieeja datu pakāpeniskai ielādei displejā. Tā vietā, lai atkārtoti ielādētu visu lapas saturu, noklikšķinot uz pogas Atsvaidzināt, tiks aktivizēts tīmekļa pieprasījums, kas tiks ielādēts fonā. Kad saturs tika ielādēts, datus varēja manipulēt, saglabāt un parādīt lapā, izmantojot JavaScript, universālo programmēšanas valodu pārlūkprogrammās.

REST vs SOAP: JSON savienojums

Sākotnēji šie dati tika pārsūtīti XML formātā (piemēru skatiet zemāk), izmantojot ziņojumapmaiņas protokolu ar nosaukumu SOAP (vienkāršs objekta piekļuves protokols). Bet XML bija daudzveidīgs un grūti pārvaldāms JavaScript. JavaScript jau bija objekti, kas ir veids, kā izteikt datus valodā, tāpēc Duglass Krokfords paņēma šīs izteiksmes apakškopu kā jauna datu apmaiņas formāta specifikāciju un nodēvēja to par JSON. JSON cilvēkiem bija daudz vieglāk lasīt un pārlūkprogrammām parsēt.

00. gadu laikā cita tīmekļa pakalpojumu tehnoloģija, ko sauc par pārstāvniecības stāvokļa pārsūtīšanu jeb REST, datu pārsūtīšanas nolūkā sāka apsteigt SOAP. Viena no lielākajām programmēšanas priekšrocībām, izmantojot REST API, ir tā, ka varat izmantot vairākus datu formātus - ne tikai XML, bet arī JSON un HTML. Tīmekļa izstrādātājiem dodot priekšroku JSON, nevis XML, viņi arī iecienīja REST, nevis SOAP. Kā Kostjantins Harčenko izteicās Svitla emuārā, “Daudzos aspektos REST panākumus nodrošina JSON formāts, jo to viegli var izmantot dažādās platformās.”

Šodien JSON ir faktiskais datu apmaiņas standarts starp tīmekļa un mobilajiem klientiem un aizmugures pakalpojumiem.

JSON pret XML

Kā minēts iepriekš, galvenā alternatīva JSON ir XML. Tomēr jaunajās sistēmās XML kļūst arvien retāk sastopams, un ir viegli saprast, kāpēc. Zemāk ir redzama iepriekš redzamo datu versija, šoreiz XML:

Džonatans

Freeman

  4

taisnība

Spantree tehnoloģiju grupa

Lilija

Jenots

Papildus tam, ka XML ir daudz izteiksmīgāks (šajā gadījumā tas ir tieši divreiz lielāks), XML arī ievieš zināmu neskaidrību, analizējot JavaScript draudzīgu datu struktūru. XML pārveidošana par JavaScript objektu var aizņemt no desmitiem līdz simtiem koda rindiņu, un galu galā ir nepieciešama pielāgošana, pamatojoties uz konkrēto parsēto objektu. JSON konvertēšana par JavaScript objektu aizņem vienu koda rindiņu un neprasa nekādas iepriekšējas zināšanas par parsējamo objektu.

JSON ierobežojumi

Lai gan JSON ir salīdzinoši kodolīgs, elastīgs datu formāts, ar kuru ir viegli strādāt daudzās programmēšanas valodās, formātam ir daži trūkumi. Šeit ir pieci galvenie ierobežojumi:

  1. Nav shēmas. No vienas puses, tas nozīmē, ka jums ir pilnīga elastība attēlot datus jebkurā vēlamajā veidā. No otras puses, tas nozīmē, ka nejauši ļoti viegli varētu izveidot nepareizus datus.
  2. Tikai viens skaitļu veids: IEEE-754 dubultprecīzā peldošā komata formāts. Tas ir diezgan kumosiņš, bet tas vienkārši nozīmē, ka jūs nevarat izmantot daudzveidīgo un niansēto numuru veidu priekšrocības, kas pieejamas daudzās programmēšanas valodās.
  3. Nav datuma veida. Šis izlaidums nozīmē, ka izstrādātājiem ir jāizmanto virkņu datumu atveidojums, kas noved pie formatējuma neatbilstības, vai datumi milisekundu veidā jāatspoguļo kopš laikmeta (1970. gada 1. janvāris).
  4. Bez komentāriem. Tas padara neiespējamu lauku anotāciju vienā rindā, pieprasot papildu dokumentāciju un palielinot pārpratumu iespējamību.
  5. Daudzbalsība. Lai gan JSON ir mazāk izteiksmīgs nekā XML, tas nav viskontrolētākais datu apmaiņas formāts. Lai izmantotu liela apjoma vai īpaša mērķa pakalpojumus, ieteicams izmantot efektīvākus datu formātus.

Kad man vajadzētu izmantot JSON?

Ja rakstāt programmatūru, kas sazinās ar pārlūku vai vietējo mobilo lietojumprogrammu, kā datu formātu jāizmanto JSON. Tāda formāta kā XML izmantošana ir novecojusi izvēle un sarkans karodziņš priekšgalā esošajiem un mobilajiem talantiem, kurus citādi vēlaties piesaistīt.

Starp serveri un serveri saziņas gadījumā, iespējams, labāk izmantot seriālizācijas sistēmu, piemēram, Apache Avro vai Apache Thrift. JSON šeit nav slikta izvēle, un tas joprojām var būt tieši tas, kas jums nepieciešams, taču atbilde nav tik skaidra kā tīmekļa un mobilajiem sakariem.

Ja izmantojat NoSQL datubāzes, jūs esat diezgan aizķēries ar visu, ko datu bāze jums dod. Relāciju datu bāzēs, kas atbalsta JSON kā tipu, labs īkšķis ir izmantot to pēc iespējas mazāk. Relāciju datu bāzes ir pielāgotas strukturētiem datiem, kas atbilst noteiktai shēmai. Lai gan lielākā daļa tagad atbalsta elastīgākus datus JSON formā, vaicājot par īpašumiem šajos JSON objektos, varat sagaidīt veiktspējas triecienu.

JSON ir visuresošs, de facto formāts datu sūtīšanai starp tīmekļa serveriem un pārlūkiem un mobilajām lietojumprogrammām. Tās vienkāršais dizains un elastība ļauj to viegli lasīt un saprast, un vairumā gadījumu ar to ir viegli manipulēt izvēlētajā programmēšanas valodā. Stingras shēmas trūkums nodrošina formāta elastību, taču šī elastība dažkārt apgrūtina pareizas JSON lasīšanas un rakstīšanas nodrošināšanu.

JSON parsētājs

Lietotnes koda daļu, kas pārveido datus, kas saglabāti kā JSON, formātā, kuru lietojumprogramma var izmantot, sauc par a parsētājs. JavaScript, kā jūs gaidījāt, ietver vietējo parsētāju, metodi JSON.parse ().

Jums, iespējams, būs jāpaveic nedaudz vairāk darba, lai strādātu ar JSON tādās stingri rakstītās valodās kā Scala vai Elm, taču plašā JSON ieviešana nozīmē, ka ir bibliotēkas un utilītas, kas jums palīdzēs visās grūtākajās daļās.

Vietne json.org ietver visaptverošu kodu bibliotēku sarakstu, kuras varat izmantot, lai parsētu, ģenerētu un manipulētu ar JSON dažādās valodās kā Python, C # un COBOL.

JSON komunālie pakalpojumi

Ja jūs vēlaties tieši manipulēt ar JSON kodētiem datiem vai tos pārbaudīt, pats nerakstot kodu, jums var palīdzēt vairākas tiešsaistes utilītas. Visi iepriekš aprakstīto kodu bibliotēku programmatiskie ekvivalenti, taču jūs varat izgriezt un ielīmēt JSON kodu šajos pārlūkprogrammas rīkos, lai labāk izprastu JSON vai veiktu ātru un netīru analīzi:

  • JSON formatētājs: JSONLint formatēs un apstiprinās patvaļīgu JSON kodu.
  • JSON skatītājs: Stack.hu ir vietne, kas izveidos interaktīvu koku, kas palīdzēs jums izprast JSON koda struktūru.
  • JSON Beautifier: Ja vēlaties “diezgan izdrukāt” savu JSON kodu ar sintakses krāsojumu un tamlīdzīgi, Prettydiff var jums palīdzēt.
  • JSON pārveidotājs: Vai ātri jāpārvieto dati no JSON formāta uz kaut ko citu? Convertcsv.com ir rīki, kas var pārveidot JSON uz CSV (kuru pēc tam var atvērt programmā Excel) vai XML.

JSON apmācība

Vai esat gatavs ienirt un uzzināt vairāk par to, kā strādāt ar JSON jūsu interaktīvajās lietojumprogrammās? Mozilla izstrādātāju tīklā ir lieliska apmācība, kas palīdzēs jums sākt darbu ar JSON un JavaScript. Ja esat gatavs pāriet uz citām valodām, skatiet apmācību par JSON lietošanu ar Java (no Baeldung), ar Python (no DataCamp) vai ar C # (no Software Testing Help). Veiksmi!

Džošs Fruhlingers sniedza ieguldījumu šajā rakstā.

$config[zx-auto] not found$config[zx-overlay] not found