- docx (Microsoft Word форматы);
- pdf (Adobe форматы);
- mobi (көбүнчө Amazon Kindle түзмөктөрүндө колдонулат);
- жана башка көптөгөн нерселер (ePub, djvu, fb2...).
JSON
JavaScript an objectинин белгилөө. Сиз аны менен бир аз таанышсыз! Биз бул лекцияда бул тууралуу сүйлөштүк жана бул жерде JSONде сериалдаштырууну карадык . Анын атын бир себеп менен алган. JSONга айландырылган Java an objectтери чындыгында JavaScript an objectилерине окшош. Биздин an objectтин маанисин түшүнүү үчүн JavaScriptти бorшиңиздин кереги жок:{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
}
Бир an objectти өткөрүү зарыл эмес. JSON ошондой эле an objectтердин массивдерин камтышы мүмкүн:
[
{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
},
{
"title": "Бесы",
"author": "Федор Достоевский",
"year": 1872
},
{
"title": "Чайка",
"author": "Антон Чехов",
"year": 1896
}
]
JSON JavaScript an objectиси болгондуктан, ал төмөнкү JavaScript маалымат форматтарын колдойт:
- саптар;
- сандар (сан);
- an objectилер (an object);
- массивдер (массив);
- логикалык баалуулуктар (чын жана жалган);
- нөл.
-
Адам окуй турган формат. Сиздин акыркы колдонуучу адам болсо, бул ачык артыкчылык болуп саналат. Мисалы, serverиңиз учуу графиги менен маалымат базасын сактайт. Адам кардары үйдө компьютерде отурганда веб-тиркеме аркылуу бул маалымат базасынан маалыматтарды сурайт. Дайындарды ал түшүнө турган форматта беришиңиз керек болгондуктан, JSON сонун чечим.
-
Жөнөкөйлүк. Бул elementрдык деп айтса болот :) Жогоруда биз эки JSON файлынын мисалын бердик. Жана JavaScript бар экенин эч качан укпасаңыз да (анын an objectтерин айтпай эле коелу), анда кандай an objectтер сүрөттөлгөндүгүн оңой эле түшүнө аласыз.
Бүт JSON documentтери бир нече сүрөттөрү бар бир веб-баракча . -
Кеңири таралган. JavaScript үстөмдүк кылуучу алдыңкы тил болуп саналат жана ал өзүнүн шарттарын айтып турат. JSON колдонуу милдеттүү болуп саналат. Ошондуктан, көптөгөн веб-кызматтар JSONди маалымат алмашуу форматы катары колдонушат. Ар бир заманбап IDE JSON форматын колдойт (анын ичинде Intellij IDEA). Бардык мүмкүн болгон программалоо тилдери үчүн JSON менен иштөө үчүн бир топ китепканалар жазылган.
YAML
Өзүнүн пайда болушунун башында, ал Yet Another Markup Language - "башка белгилөө тor" дегенди билдирген. Ал учурда XML үчүн атаандаш катары жайгаштырылган. Эми, убакыт өткөндөн кийин, ал "YAML Ain't Markup Language" дегенди билдирет ("YAML - белгилөө тor эмес"). Ал кандай? Келгиле, компьютердик оюнубуз үчүн 3 каарман классын түзүшүбүз керек деп элестетип көрөлү: Warrior, Mage жана Thief. Алар төмөнкүдөй өзгөчөлүктөргө ээ болот: күч, шамдагайлык, чыдамкайлык жана курал-жарактардын жыйындысы. Класстын сүрөттөмөлөрү менен 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 файлы дарак структурасына ээ: кээ бир элементтер башкалардын ичинде уяланган. Ар бир деңгээлди белгилөө үчүн белгилүү бир сандагы боштуктарды колдонуу менен уя салууну көзөмөлдөй алабыз. YAML форматынын кандай артыкчылыктары бар?
-
Адам окуй алат. Дагы бир жолу, сүрөттөлүшү жок yaml файлын көрсөңүз да, анда кандай an objectтер сүрөттөлүп жатканын оңой түшүнө аласыз. YAML адам үчүн канчалык жакшы окуса, yaml.org сайтынын негизги барагы кадимки yaml файлы :)
-
Компакттуулук. Файл структурасы боштуктар менен түзүлөт: кашааларды же тырмакчаларды колдонуунун кереги жок.
-
Программалоо тилдерине тиешелүү маалымат структураларын колдоо. JSON жана башка көптөгөн форматтарга караганда YAMLдин чоң артыкчылыгы - бул ар кандай маалымат структураларын колдойт. Алардын ичинен:
-
!!карта
Ачкыч:баа жуптарынын иретсиз жыйнагы, кайталануу мүмкүнчүлүгү жок; -
!!omap
Ачкыч:баа жуптарынын иреттелген ырааттуулугу, кайталануу мүмкүнчүлүгү жок; -
!!жуптар:
Ачкычтын иреттелген ырааттуулугу: кайталануу мүмкүнчүлүгү бар маани жуптары; - !!коюу
бири-бирине барабар эмес маанилердин иретсиз ырааттуулугу; - !!seq
Ыктыярдуу маанилердин ырааттуулугу;
Бул структуралардын айрымдары сизге Javaдан тааныш болот! :) Бул өзгөчөлүктүн аркасында сиз ар кандай маалымат структураларын программалоо тилдеринен YAML форматына сериялай аласыз.
-
-
якор жана лакап атын колдонуу мүмкүнчүлүгү
"казык" жана "лакап ат" деген сөздөрдүн котормосу - "казык" жана "псевдоним". Негизи, бул YAMLде бул терминдердин маңызын так сүрөттөйт.
Алар yaml файлындагы элементти аныктоого мүмкүндүк берет жана ал кайра-кайра кайталанса, файлдын калган бөлүгүндө ага кайрылыңыз. Anchor символдун жардамы менен түзүлөт
&
жана лакап ат менен түзүлөт*
.Бизде Лев Толстойдун китептерин сүрөттөгөн файл бар дейли. Ар бир жолу автордун атын кол менен жазып албаш үчүн, биз жөн гана "лео" анкерин түзүп, керек болгондо ага лакап ат менен кайрылабыз:
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 (экorк JSON)
Анын аты айтып тургандай, ал JSONге абдан окшош, бирок адам окуй алbyte жана экorк форматтагы маалыматтарда иштейт. Бул сүрөттөрдү жана башка тиркемелерди сактоо жана өткөрүү үчүн абдан ыңгайлуу кылат. Мындан тышкары, BSON JSONде жок кээ бир маалымат түрлөрүн колдойт. Мисалы, сиз BSON файлына күндү (миллисекунд форматында) же жада калса JavaScript codeунун бир бөлүгүн жаза аласыз. Популярдуу NoSQL маалымат базасы MongoDB маалыматты BSON форматында сактайт.Позицияга негизделген протокол
Кээ бир жагдайларда, биз (мисалы, маалыматтар көп болсо жана жүктү азайтуу керек болсо) өткөрүлүп берилүүчү көлөмүн кескин кыскартуу керек. Бул жагдайда биз позицияга негизделген протоколду колдоно алабыз , башкача айтканда, параметрдин маанилерин параметрлердин аталыштары жок өткөрөбүз."Leo Tolstoy" | "Anna Karenina" | 1873
Бул форматтагы маалыматтар толук кандуу JSON файлына караганда азыраак орун ээлейт. Албетте, сериалдаштыруунун башка форматтары бар, бирок алардын баарын азыртадан билүүнүн кереги жок :) Азыр тиркемени иштеп чыгуунун тармактык стандарты болгон форматтар менен таанышып, алардын артыкчылыктарын жана бири-биринен айырмаларын эстеп жүргөнүңүз жакшы. . Ал эми лекциябыз аяктады :) Бүгүн бир-эки маселени чечүүнү унутпаңыз! Көрүшкөнгө чейин! :)
GO TO FULL VERSION