- docx (формати Microsoft Word);
- pdf (формати Adobe);
- mobi (одатан дар дастгоҳҳои Amazon Kindle истифода мешавад);
- ва бисёр чизҳои дигар (ePub, djvu, fb2...).
JSON
Навиштани an objectи JavaScript. Шумо аллакай бо ӯ каме ошно ҳастед! Мо дар ин лексия дар бораи он сӯҳбат кардем ва мо дар ин ҷо ба силсилаисозии JSON назар кардем . Он барои як сабаб номи худро гирифт. Объектҳои Java, ки ба JSON табдил дода шудаанд, воқеан ба an objectҳои JavaScript монанданд. Барои фаҳмидани маънои an objectи мо ба шумо JavaScript донистан лозим нест:{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
}
Аз як an object гузаштан шарт нест. JSON инчунин метавонад як қатор an objectҳоро дар бар гирад:
[
{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
},
{
"title": "Бесы",
"author": "Федор Достоевский",
"year": 1872
},
{
"title": "Чайка",
"author": "Антон Чехов",
"year": 1896
}
]
Азбаски JSON an objectи JavaScript аст, он форматҳои зерини маълумоти JavaScript-ро дастгирӣ мекунад:
- сатрҳо;
- рақамҳо (рақам);
- an objectҳо (an object);
- массивҳо (массив);
- арзишҳои логикӣ (ҳақиқӣ ва бардурӯғ);
- нул.
-
Формате, ки барои одамон хонда мешавад. Ин як бартарии возеҳ аст, агар корбари ниҳоии шумо инсон бошад. Масалан, serverи шумо пойгоҳи додаҳоро бо ҷадвалҳои парвоз нигоҳ медорад. Муштарии инсонӣ ҳангоми нишастан дар хона дар компютер маълумотро аз ин махзани маълумот бо истифода аз барномаи веб дархост мекунад. Азбаски шумо бояд маълумотро дар формате пешниҳод кунед, ки ӯ фаҳмад, JSON як ҳалли олӣ аст.
-
Соддаӣ. Шумо метавонед бигӯед, ки ин ибтидоӣ аст :) Дар боло мо ду файли JSON-ро мисол овардем. Ва ҳатто агар шумо ҳеҷ гоҳ дар бораи мавҷудияти JavaScript нашунида бошед (бигзор an objectҳои он), шумо метавонед ба осонӣ фаҳмед, ки чӣ гуна an objectҳо дар он тасвир шудаанд.
Тамоми ҳуҷҷатҳои JSON як саҳифаи веб бо якчанд тасвирҳо мебошанд. -
Васеъ. JavaScript забони бартаридоштаи фронт мебошад ва шартҳои онро дикта мекунад. Истифодаи JSON ҳатмист. Аз ин рӯ, шумораи зиёди хидматҳои веб JSON-ро ҳамчун формати табодули маълумот истифода мебаранд. Ҳар як IDE муосир формати JSON-ро дастгирӣ мекунад (аз ҷумла Intellij IDEA). Барои кор бо JSON барои ҳама забонҳои имконпазири барномасозӣ як даста китобхонаҳо навишта шудаанд.
ЯМЛ
Дар ибтидои мавҷудияти худ, он барои Yet Another Markup Language - "забони дигари аломатгузорӣ" буд. Дар он вақт он ҳамчун рақиби XML ҷойгир карда шуда буд. Ҳоло, пас аз гузашти вақт, он маънои "YAML Ain't Markup Language" аст ("YAML забони аломатгузорӣ нест"). Ӯ чӣ гуна аст? Биёед тасаввур кунем, ки мо бояд барои бозии компютерии худ 3 синфи аломат эҷод кунем: Ҷанговар, Маҷ ва Дузд. Онҳо дорои хусусиятҳои зерин хоҳанд буд: қувват, чолокӣ, тобоварӣ ва маҷмӯи силоҳ. Ин аст он чизест, ки файли YAML мо бо тавсифи синф чунин хоҳад буд:classes:
class-1:
title: Warrior
power: 8
agility: 4
stamina: 7
weapons:
- sword
- spear
class-2:
title: Mage
power: 5
agility: 7
stamina: 5
weapons:
- magic staff
class-3:
title: Thief
power: 6
agility: 6
stamina: 5
weapons:
- dagger
- poison
Файли YAML дорои сохтори дарахт аст: баъзе элементҳо дар дохor дигарон ҷойгир шудаанд. Мо метавонем лонаро бо истифода аз миқдори муайяни ҷойҳо барои ифодаи ҳар як сатҳ назорат кунем. Формати YAML кадом бартариҳо дорад?
-
Ба одам хондан мумкин аст. Боз ҳам, ҳатто агар шумо файли yaml-ро бидуни тавсиф бинед, шумо метавонед ба осонӣ фаҳмед, ки кадом an objectҳо дар он тасвир шудаанд. YAML ин аст, ки то чӣ андоза инсон хондан мумкин аст, ки саҳифаи асосии yaml.org файли муқаррарии yaml аст :)
-
Компактӣ. Сохтори файл бо фосила ташкил карда мешавад: истифодаи қавс ё нохунак лозим нест.
-
Дастгирии сохторҳои додаҳо ба забонҳои барномасозӣ. Бартарии бузурги YAML нисбат ба JSON ва бисёр форматҳои дигар дар он аст, ки он сохторҳои гуногуни маълумотро дастгирӣ мекунад. Дар байни онҳо:
-
!!харита
Маҷмӯаи бетартиби калид:ҷуфтҳои арзишӣ бидуни имкони такрорӣ; -
!!omap
Пайдарпайии тартибдодашудаи калид:ҷуфтҳои арзиш бидуни имкони такрорӣ; -
!!ҷуфтҳо:
пайдарпайии тартибёфтаи калид:ҷуфтҳои арзиш бо имкони такрорӣ; - !!
маҷмӯи пайдарпайии бетартиби арзишҳое, ки ба ҳамдигар баробар нестанд; - !!seq
пайдарпайии арзишҳои ихтиёрӣ;
Баъзе аз ин сохторҳо барои шумо аз Java шинос хоҳанд шуд! :) Ба шарофати ин хусусият, шумо метавонед сохторҳои гуногуни маълумотро аз забонҳои барномасозӣ ба формати YAML силсилавӣ кунед.
-
-
Қобorяти истифодаи лангар ва тахаллус
Тарҷумаи калимаҳои «лангар» ва «тахаллус» - «лангар» ва «тахаллус». Аслан, он моҳияти ин истилоҳҳоро дар YAML комилан дақиқ тавсиф мекунад.
Онҳо ба шумо имкон медиҳанд, ки унсурро дар файли yaml муайян кунед ва агар он такроран рух диҳад, ба он дар қисми боқимондаи файл муроҷиат кунед. Лангар бо истифода аз рамз сохта мешавад
&
ва тахаллус бо истифода аз*
.Фарз мекунем, ки дар мо файле бо тавсифи китобҳои Лев Толстой мавҷуд аст. Барои он ки ҳар дафъа ба таври дастӣ номи муаллифро нанависем, мо танҳо як лангари "leo" эҷод мекунем ва ҳангоми зарурат ба он бо истифода аз тахаллус муроҷиат мекунем:
books: book-1: title: War and Peace author: &leo Leo Tolstoy year: 1869 book-2: title: Anna Karenina author: *leo year: 1873 book-3: title: Family Happiness author: *leo year: 1859
Вақте ки мо ин файлро бо ягон таҳлилгар мехонем, арзиши "Лев Толстой" дар ҷойҳои дуруст ба ҷои тахаллуси мо иваз карда мешавад.
- Шумо метавонед маълумотро дар форматҳои дигар дар YAML ҷойгир кунед. Масалан, JSON:
books: [ { "title": "War and Peace", "author": "Leo Tolstoy", "year": 1869 }, { "title": "Anna Karenina", "author": "Leo Tolstoy", "year": 1873 }, { "title": "Family Happiness", "author": "Leo Tolstoy", "year": 1859 } ]
Дигар форматҳои сериализатсия
XML
Ин формат ба дарахти тег асос ёфтааст.<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
Ҳар як элемент аз теги кушода ва пӯшида (<> ва </>) иборат аст. Ҳар як элемент метавонад унсурҳои лона дошта бошад. XML як формати маъмул аст, аз JSON ва YAML пасттар нест (агар мо дар бораи истифода дар лоиҳаҳои воқеӣ гап занем). Мо дар бораи XML лексияи алоҳида дорем .
BSON (JSON дуӣ)
Тавре ки аз номаш бармеояд, он ба JSON хеле монанд аст, аммо барои одамон хондан қобor қабул нест ва бо маълумот дар формати дуӣ кор мекунад. Ин онро барои нигоҳдорӣ ва интиқоли тасвирҳо ва замимаҳои дигар хеле қулай мегардонад. Илова бар ин, BSON баъзе намудҳои додаҳоро, ки дар JSON дастрас нестанд, дастгирӣ мекунад. Масалан, шумо метавонед сана (дар формати миллисония) ё ҳатто як пораи рамзи JavaScript-ро ба файли BSON нависед. Пойгоҳи маъмули NoSQL MongoDB маълумотро дар формати BSON нигоҳ медорад.Протоколи ба мавқеъ асосёфта
Дар баъзе ҳолатҳо, мо бояд миқдори додаҳои интиқолшударо ба таври назаррас кам кунем (масалан, агар маълумот зиёд бошад ва мо бояд сарбориро кам кунем). Дар ин ҳолат, мо метавонем протоколи мавқеъро истифода барем , яъне арзишҳои параметрро бидуни номи худи параметрҳо гузаронем."Leo Tolstoy" | "Anna Karenina" | 1873
Маълумот дар ин формат назар ба файли мукаммали JSON фазои камтарро ишғол мекунад. Албатта, форматҳои дигари сериализатсия вуҷуд доранд, аммо ба шумо ҳоло лозим нест, ки ҳамаи онҳоро донед :) Хуб аст, ки бо форматҳое, ки ҳоло стандарти саноатӣ барои таҳияи барномаҳо мебошанд, шинос шавед ва бартариҳо ва фарқиятҳои онҳоро аз ҳамдигар дар хотир доред. . Ва лекцияи мо ба охир расид :) Имруз халли як-ду масъаларо фаромуш накунед! То боздид! :)
GO TO FULL VERSION