- docx (Microsoft Word formati);
- pdf (Adobe formati);
- mobi (odatda Amazon Kindle qurilmalarida qo'llaniladi);
- va boshqalar (ePub, djvu, fb2...).
JSON
JavaScript ob'ekt belgisi. Siz u bilan biroz tanishsiz! Biz bu ma'ruzada bu haqda gaplashdik va bu erda JSON'da serializatsiyani ko'rib chiqdik . U biron bir sababga ko'ra o'z nomini oldi. JSON-ga aylantirilgan Java ob'ektlari aslida JavaScript ob'ektlariga o'xshaydi. Ob'ektimizning ma'nosini tushunish uchun JavaScript-ni bilishingiz shart emas:{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
}
Bitta ob'ektdan o'tish shart emas. JSON shuningdek, bir qator ob'ektlarni o'z ichiga olishi mumkin:
[
{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
},
{
"title": "Бесы",
"author": "Федор Достоевский",
"year": 1872
},
{
"title": "Чайка",
"author": "Антон Чехов",
"year": 1896
}
]
JSON JavaScript obyekti boʻlgani uchun u quyidagi JavaScript maʼlumotlar formatlarini qoʻllab-quvvatlaydi:
- torlar;
- raqamlar (raqam);
- ob'ektlar (ob'ekt);
- massivlar (massiv);
- mantiqiy qiymatlar (to'g'ri va noto'g'ri);
- null.
-
Inson o'qiy oladigan format. Sizning oxirgi foydalanuvchingiz inson bo'lsa, bu aniq afzallikdir. Misol uchun, sizning serveringiz parvozlar jadvallari bilan ma'lumotlar bazasini saqlaydi. Inson mijozi uyda kompyuterda o'tirganda veb-ilovadan foydalanib, ushbu ma'lumotlar bazasidan ma'lumotlarni so'raydi. Ma'lumotni u tushunadigan formatda taqdim etishingiz kerak bo'lganligi sababli, JSON ajoyib echimdir.
-
Oddiylik. Buni boshlang'ich deb aytishingiz mumkin :) Yuqorida biz ikkita JSON fayliga misol keltirdik. Va agar siz JavaScript mavjudligi haqida hech qachon eshitmagan bo'lsangiz ham (uning ob'ektlari u yoqda tursin), u erda qanday ob'ektlar tasvirlanganligini osongina tushunishingiz mumkin.
Butun JSON hujjatlari bir nechta rasmdan iborat bitta veb-sahifadir . -
Keng tarqalgan. JavaScript - bu asosiy til bo'lib, u o'z shartlarini belgilaydi. JSON dan foydalanish shart. Shu sababli, ko'plab veb-xizmatlar JSON-dan ma'lumotlarni almashish formati sifatida foydalanadi. Har bir zamonaviy IDE JSON formatini (shu jumladan Intellij IDEA) qo'llab-quvvatlaydi. Barcha mumkin bo'lgan dasturlash tillari uchun JSON bilan ishlash uchun bir qancha kutubxonalar yozilgan.
YAML
Mavjudligining boshida, u Yet Another Markup Language - "boshqa belgilash tili" degan ma'noni anglatadi. O'sha paytda u XML uchun raqobatchi sifatida joylashgan edi. Endi, vaqt o'tgandan so'ng, u "YAML Ain't Markup Language" degan ma'noni anglatadi ("YAML - belgilash tili emas"). U nimaga o'xshaydi? Tasavvur qilaylik, kompyuter o'yinimiz uchun 3 ta belgi sinfini yaratishimiz kerak: Jangchi, Mage va O'g'ri. Ular quyidagi xususiyatlarga ega bo'ladi: kuch, chaqqonlik, chidamlilik va qurollar to'plami. Sinf tavsiflari bilan bizning YAML faylimiz shunday ko'rinadi: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 fayli daraxt tuzilishiga ega: ba'zi elementlar boshqalar ichiga joylashtirilgan. Biz har bir darajani belgilash uchun ma'lum miqdordagi bo'sh joydan foydalanib, joylashtirishni boshqarishimiz mumkin. YAML formatining qanday afzalliklari bor?
-
Inson o'qishi mumkin. Shunga qaramay, agar siz tavsifsiz yaml faylini ko'rsangiz ham, u erda qanday ob'ektlar tasvirlanganligini osongina tushunishingiz mumkin. Yaml.org ning asosiy sahifasi oddiy yaml fayli ekanligini YAML inson uchun qanchalik yaxshi o'qiydi :)
-
Kompaktlik. Fayl strukturasi bo'shliqlar bilan shakllantiriladi: qavs yoki tirnoqlardan foydalanishning hojati yo'q.
-
Dasturlash tillariga xos bo'lgan ma'lumotlar tuzilmalarini qo'llab-quvvatlash. YAML ning JSON va boshqa ko'plab formatlarga nisbatan katta afzalligi shundaki, u turli xil ma'lumotlar tuzilmalarini qo'llab-quvvatlaydi. Ular orasida:
-
!!map
Kalit:qiymat juftlarining tartibsiz to‘plami, takrorlanish imkoniyati yo‘q; -
!!omap
Kalit:qiymat juftlarining tartiblangan ketma-ketligi, takrorlanish imkoniyati yo‘q; -
!!juftlar:
kalitning tartiblangan ketma-ketligi: dublikat qilish imkoniyati bilan qiymat juftlari; - !!
bir-biriga teng bo'lmagan qiymatlarning tartibsiz ketma-ketligini belgilang; - !!seq
Ixtiyoriy qiymatlar ketma-ketligi;
Ushbu tuzilmalarning ba'zilari sizga Java'dan tanish bo'ladi! :) Ushbu xususiyat tufayli siz turli xil ma'lumotlar tuzilmalarini dasturlash tillaridan YAML formatiga seriyalashtirishingiz mumkin.
-
-
Anchor va taxallusdan foydalanish qobiliyati
"Lanker" va "taxallus" so'zlarining tarjimasi - "langar" va "taxallus". Aslida, u YAMLda ushbu atamalarning mohiyatini juda aniq tasvirlab beradi.
Ular yaml faylidagi elementni aniqlashga imkon beradi va agar u qayta-qayta sodir bo'lsa, faylning qolgan qismida unga murojaat qiladi. Anchor belgi yordamida yaratiladi
&
va taxallus yordamida yaratiladi*
.Aytaylik, bizda Lev Tolstoy kitoblarining tavsiflari mavjud fayl bor. Muallifning ismini har safar qo'lda yozmaslik uchun biz shunchaki "leo" langarini yaratamiz va kerak bo'lganda taxallus yordamida unga murojaat qilamiz:
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
Ushbu faylni tahlil qiluvchi bilan o'qiganimizda, "Lev Tolstoy" qiymati bizning taxallus o'rniga to'g'ri joylarda almashtiriladi.
- YAML-ga boshqa formatlarda ma'lumotlarni joylashtirishingiz mumkin. Masalan, 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 } ]
Boshqa seriyali formatlar
XML
Ushbu format teg daraxti deb ataladigan narsaga asoslangan.<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
Har bir element ochilish va yopish tegidan (<> va </>) iborat. Har bir element o'rnatilgan elementlarga ega bo'lishi mumkin. XML umumiy format bo'lib, JSON va YAML dan kam emas (agar biz haqiqiy loyihalarda foydalanish haqida gapiradigan bo'lsak). Bizda XML bo'yicha alohida ma'ruza bor .
BSON (ikkilik JSON)
Nomidan ko'rinib turibdiki, u JSONga juda o'xshaydi, lekin odam o'qiy olmaydi va ikkilik formatdagi ma'lumotlarda ishlaydi. Bu tasvirlar va boshqa qo'shimchalarni saqlash va uzatish uchun juda qulay qiladi. Bundan tashqari, BSON JSON-da mavjud bo'lmagan ba'zi ma'lumotlar turlarini qo'llab-quvvatlaydi. Masalan, siz BSON fayliga sanani (milisoniya formatida) yoki hatto JavaScript kodining bir qismini yozishingiz mumkin. MongoDB mashhur NoSQL ma'lumotlar bazasi ma'lumotlarni BSON formatida saqlaydi.Lavozimga asoslangan protokol
Ba'zi hollarda biz uzatiladigan ma'lumotlar hajmini keskin kamaytirishimiz kerak (masalan, agar ma'lumotlar juda ko'p bo'lsa va biz yukni kamaytirishimiz kerak bo'lsa). Bunday vaziyatda biz pozitsiyaga asoslangan protokoldan foydalanishimiz mumkin , ya'ni parametr qiymatlarini parametrlarning nomlarisiz o'tkazish."Leo Tolstoy" | "Anna Karenina" | 1873
Ushbu formatdagi ma'lumotlar to'liq JSON fayliga qaraganda kamroq joy egallaydi. Albatta, boshqa ketma-ketlashtirish formatlari ham bor, lekin hozir hammasini bilish shart emas :) Ilovalarni ishlab chiqish uchun sanoat standarti bo'lgan formatlar bilan tanishish va ularning afzalliklari va bir-biridan farqlarini eslab qolish yaxshi. . Va ma'ruzamiz o'z nihoyasiga yetdi :) Bugun bir-ikkita masalani yechishni unutmang! Yana ko'rishguncha! :)
GO TO FULL VERSION