- docx (Microsoft Word formatı);
- pdf (Adobe formatı);
- mobi (adətən Amazon Kindle cihazlarında istifadə olunur);
- və daha çox (ePub, djvu, fb2...).
JSON
JavaScript Obyekt Notasiyası. Siz artıq onunla bir az tanışsınız! Biz bu mühazirədə bu haqda danışdıq və burada JSON-da seriallaşdırmaya baxdıq . Bir səbəbə görə adını aldı. JSON-a çevrilən Java obyektləri əslində JavaScript obyektlərinə bənzəyir. Obyektimizin mənasını başa düşmək üçün JavaScript-i bilməyə ehtiyac yoxdur:{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
}
Bir obyekti keçmək lazım deyil. JSON həmçinin bir sıra obyektləri ehtiva edə bilər:
[
{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
},
{
"title": "Бесы",
"author": "Федор Достоевский",
"year": 1872
},
{
"title": "Чайка",
"author": "Антон Чехов",
"year": 1896
}
]
JSON JavaScript obyekti olduğundan, aşağıdakı JavaScript məlumat formatlarını dəstəkləyir:
- simlər;
- nömrələr (nömrə);
- obyektlər (obyekt);
- massivlər (massiv);
- boolean dəyərləri (doğru və yanlış);
- sıfır.
-
İnsan tərəfindən oxuna bilən format. Son istifadəçiniz insandırsa, bu açıq bir üstünlükdür. Məsələn, serveriniz uçuş cədvəlləri olan verilənlər bazasını saxlayır. İnsan müştəri evdə kompüterdə oturarkən veb proqramından istifadə edərək bu verilənlər bazasından məlumat tələb edir. Məlumatları onun başa düşəcəyi formatda təqdim etməli olduğunuz üçün JSON əla bir həlldir.
-
Sadəlik. Bunun elementar olduğunu deyə bilərsiniz :) Yuxarıda iki JSON faylı nümunəsi verdik. JavaScript-in (obyektləri bir yana qalsın) mövcudluğu haqqında heç eşitməmisinizsə belə, orada hansı növ obyektlərin təsvir olunduğunu asanlıqla başa düşə bilərsiniz.
Bütün JSON sənədləri bir neçə şəkil olan bir veb səhifədir . -
Geniş yayılmış. JavaScript dominant cəbhə dilidir və onun şərtlərini diktə edir. JSON-dan istifadə mütləqdir. Buna görə də, çox sayda veb xidmətləri məlumat mübadiləsi üçün bir format kimi JSON-dan istifadə edir. Hər bir müasir IDE JSON formatını (Intellij IDEA daxil olmaqla) dəstəkləyir. Bütün mümkün proqramlaşdırma dilləri üçün JSON ilə işləmək üçün bir dəstə kitabxana yazılmışdır.
YAML
Mövcudluğunun əvvəlində o, Yet Another Markup Language - "başqa bir işarələmə dili" üçün dayanırdı. O zaman o, XML-ə rəqib kimi yer alırdı. İndi, zaman keçdikcə, "YAML İşarələmə Dili deyil" ("YAML işarələmə dili deyil") mənasını verir. O necədir? Təsəvvür edək ki, kompüter oyunumuz üçün 3 xarakter sinfi yaratmalıyıq: Warrior, Mage və Thief. Onlar aşağıdakı xüsusiyyətlərə sahib olacaqlar: güc, çeviklik, dözümlülük və bir sıra silahlar. Sinif təsvirləri olan YAML faylımız belə görünəcək: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 faylı ağac quruluşuna malikdir: bəzi elementlər digərlərinin içərisinə yerləşdirilir. Hər səviyyəni göstərmək üçün müəyyən sayda boşluqdan istifadə etməklə yuva qurmağı idarə edə bilərik. YAML formatının hansı üstünlükləri var?
-
İnsan tərəfindən oxuna bilən. Yenə təsviri olmayan bir yaml faylı görsəniz belə, orada hansı obyektlərin təsvir olunduğunu asanlıqla başa düşə bilərsiniz. Yaml.org -un əsas səhifəsinin adi yaml faylı olması insan üçün nə qədər yaxşı oxuna bilər :)
-
Kompaktlıq. Fayl strukturu boşluqlarla formalaşır: mötərizədə və ya dırnaq işarələrindən istifadə etməyə ehtiyac yoxdur.
-
Proqramlaşdırma dillərinə xas olan məlumat strukturlarına dəstək. YAML-in JSON və bir çox digər formatlardan böyük üstünlüyü onun müxtəlif məlumat strukturlarını dəstəkləməsidir. Onların arasında:
-
!!map
Dublikatların mümkünlüyü olmayan açar:dəyər cütlərinin sıralanmamış kolleksiyası; -
!!omap
Dublikatların mümkünlüyü olmayan açar:dəyər cütlərinin sifarişli ardıcıllığı; -
!!pairs:
Dublikatların mümkünlüyü ilə açar:dəyər cütlərinin sifarişli ardıcıllığı; - !!
bir-birinə bərabər olmayan sıralanmamış dəyərlər ardıcıllığını təyin edin; - !!seq
İxtiyari qiymətlərin ardıcıllığı;
Bu strukturlardan bəziləri sizə Java-dan tanış olacaq! :) Bu xüsusiyyət sayəsində müxtəlif məlumat strukturlarını proqramlaşdırma dillərindən YAML formatına seriallaşdıra bilərsiniz.
-
-
Çapa və ləqəbdən istifadə etmək bacarığı
“Anker” və “ləqəb” sözlərinin tərcüməsi – “lövbər” və “təxəllüs”. Prinsipcə, YAML-də bu terminlərin mahiyyətini kifayət qədər dəqiq təsvir edir.
Onlar yaml faylındakı elementi müəyyən etməyə və təkrar baş verərsə, faylın qalan hissəsində ona istinad etməyə imkan verir. Anchor simvoldan istifadə edilərək yaradılır
&
və ləqəb istifadə edərək yaradılır*
.Tutaq ki, Lev Tolstoyun kitablarının təsviri olan bir faylımız var. Müəllifin adını hər dəfə əl ilə yazmamaq üçün biz sadəcə olaraq lövbər "leo" yaradacağıq və lazım olanda ləqəbdən istifadə edərək ona istinad edəcəyik:
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
Bu faylı bəzi təhlilçi ilə oxuduğumuz zaman ləqəbimizin yerinə lazımi yerlərdə “Lev Tolstoy” dəyəri əvəz olunacaq.
- Siz YAML-də məlumatları başqa formatlarda yerləşdirə bilərsiniz. Məsələn, 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 } ]
Digər seriallaşdırma formatları
XML
Bu format sözdə etiket ağacına əsaslanır.<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
Hər bir element açılış və bağlanma teqindən (<> və </>) ibarətdir. Hər bir elementin daxili elementləri ola bilər. XML ümumi formatdır, JSON və YAML-dən aşağı deyil (əgər real layihələrdə istifadədən danışırıqsa). XML üzrə ayrıca mühazirəmiz var .
BSON (ikili JSON)
Adından da göründüyü kimi, o, JSON-a çox bənzəyir, lakin insanlar tərəfindən oxunmur və binar formatda verilənlər üzərində işləyir. Bu, şəkilləri və digər əlavələri saxlamaq və köçürmək üçün çox rahat edir. Bundan əlavə, BSON JSON-da mövcud olmayan bəzi məlumat növlərini dəstəkləyir. Məsələn, BSON faylına tarix (milisaniyə formatında) və ya hətta JavaScript kodunun bir hissəsini yaza bilərsiniz. Məşhur NoSQL verilənlər bazası MongoDB məlumatı BSON formatında saxlayır.Mövqe əsaslı protokol
Bəzi hallarda, ötürülən məlumatların həcmini kəskin şəkildə azaltmalıyıq (məsələn, çoxlu məlumat varsa və yükü azaltmaq lazımdırsa). Bu vəziyyətdə, mövqe əsaslı protokoldan istifadə edə bilərik , yəni parametrlərin öz adları olmadan parametr dəyərlərini ötürə bilərik."Leo Tolstoy" | "Anna Karenina" | 1873
Bu formatdakı məlumatlar tam hüquqlu JSON faylından daha az yer tutur. Təbii ki, başqa seriallaşdırma formatları da var, lakin onların hamısını indi bilmək lazım deyil :) İndi proqramların hazırlanması üçün sənaye standartı olan formatlarla tanış olmaq, onların üstünlüklərini və bir-birindən fərqlərini xatırlamaq yaxşıdır. . Və mühazirəmiz sona çatdı :) Bu gün bir-iki problemi həll etməyi unutmayın! Yenidən görüşərik! :)
GO TO FULL VERSION