- docx (Microsoft Word formátum);
- pdf (Adobe formátum);
- mobi (általánosan használt Amazon Kindle eszközökön);
- és még sok más (ePub, djvu, fb2 stb.).
JSON
JavaScript objektum jelölés. Már ismersz egy kicsit erről a formátumról! Ebben a leckében beszéltünk róla , és itt foglalkoztunk a JSON-ba való szerializálással . Okkal kapta a nevét. A JSON-ba konvertált Java objektumok valójában pontosan úgy néznek ki, mint a JavaScript objektumai. Nem kell ismerned a JavaScriptet ahhoz, hogy megértsd az objektumunkat:
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
}
Nem korlátozódunk egyetlen objektum elküldésére. A JSON formátum objektumok tömbjét is képviselheti:
[
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
},
{
"title": "Demons",
"author": "Fyodor Dostoyevsky",
"year": 1872
},
{
"title": "The Seagull",
"author": "Anton Chekhov",
"year": 1896
}
]
Mivel a JSON JavaScript objektumokat képvisel, a következő JavaScript adatformátumokat támogatja:
- húrok;
- számok;
- tárgyak;
- tömbök;
- logikai értékek (igaz és hamis);
- nulla.
-
Ember által olvasható formátum. Ez nyilvánvaló előny, ha a végfelhasználó ember. Tegyük fel például, hogy a szervere rendelkezik egy adatbázissal a járatok menetrendjével. Egy emberi ügyfél otthon a számítógépe előtt ülve kér adatokat ebből az adatbázisból egy webes alkalmazás segítségével. Mivel olyan formátumban kell megadnia az adatokat, amelyet ő is megért, a JSON nagyszerű megoldás.
-
Egyszerűség. Szuper egyszerű :) Fentebb példát mutattunk két JSON fájlra. És még ha nem is hallott a JavaScriptről (nem beszélve a JavaScript objektumokról), könnyen megértheti az ott leírt objektumokat.
Az egész JSON-dokumentáció egy weboldalból áll, néhány képpel. -
Széleskörű használat. A JavaScript a domináns front-end nyelv, és megvannak a maga követelményei. A JSON használata kötelező. Ezért rengeteg webszolgáltatás használja a JSON-t adatcsere-formátumként. Minden modern IDE támogatja a JSON formátumot (beleértve az IntelliJ IDEA-t is). Egy csomó könyvtárat írtak mindenféle programozási nyelvhez, hogy lehetővé tegyék a JSON-nal való munkát.
YAML
Kezdetben a YAML a "Yet Another Markup Language" rövidítése. Amikor elkezdődött, az XML versenytársa volt. Most, az idő múlásával a YAML azt jelenti, hogy "YAML nem jelölőnyelv". Mi ez pontosan? Képzeljük el, hogy 3 osztályt kell létrehoznunk a karakterek ábrázolásához egy számítógépes játékban: Warrior, Mage és Thief. A következő tulajdonságokkal rendelkeznek: erő, mozgékonyság, állóképesség, fegyverkészlet. Így nézne ki az osztályainkat leíró YAML fájl:
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
A YAML-fájlnak fa szerkezete van: egyes elemek másokba vannak beágyazva. A beágyazást bizonyos számú szóköz használatával szabályozhatjuk, amelyet az egyes szintek jelölésére használunk. Mik a YAML formátum előnyei?
-
Ember által olvasható. Ismétlem, még ha leírás nélküli YAML-fájlt is lát, könnyen megértheti az általa leírt objektumokat. A YAML annyira ember számára olvasható, hogy a yaml.org webhely egy közönséges YAML fájl :)
-
Kompaktság. A fájlszerkezet szóközökkel készül: nincs szükség zárójelek vagy idézőjelek használatára.
-
Natív adatstruktúrák támogatása programozási nyelvekhez. A YAML hatalmas előnye a JSON-nal és sok más formátummal szemben, hogy különféle adatstruktúrákat támogat. Tartalmazzák:
-
!!map
Kulcs-érték párok rendezetlen halmaza, amelyeknek nem lehetnek ismétlődései; -
!!omap
Kulcs-érték párok rendezett sorozata, amelyeknek nem lehetnek ismétlődései; -
!!pairs:
Kulcs-érték párok rendezett sorozata, amelyeknek ismétlődései lehetnek; - !!set
Egymással nem egyenlő értékek rendezetlen sorozata; - !!seq
Tetszőleges értékek sorozata;
Néhány ilyen szerkezetet felismer a Java-ból! :) Ez azt jelenti, hogy a programozási nyelvekből származó különféle adatstruktúrák sorosíthatók YAML-be.
-
-
Horgony és álnév használatának képessége
Ezek a jelölők lehetővé teszik, hogy azonosítson bizonyos elemeket a YAML-fájlban, majd hivatkozzon rá a fájl többi részében, ha ismétlődően előfordul. A horgony a & szimbólummal , az álnév pedig a * jellel jön létre .
Tegyük fel, hogy van egy fájlunk, amely Lev Tolsztoj könyveit írja le. Annak érdekében, hogy ne írjuk ki a szerző nevét az egyes könyvekhez, egyszerűen létrehozzuk a leo horgonyt, és szükség esetén álnévvel hivatkozunk rá:
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
A fájl elemzésekor a „Leo Tolsztoj” érték behelyettesítésre kerül a megfelelő helyeken, ahol az álneveink vannak.
- A YAML más formátumokba is beágyazhat adatokat. Például 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 } ]
Egyéb szerializációs formátumok
XML
Ez a formátum egy címkefán alapul.
<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
Minden elem egy nyitó és záró címkéből (<> és </>) áll. Minden elemnek lehetnek beágyazott elemei. Az XML egy elterjedt formátum, amely ugyanolyan jó, mint a JSON és a YAML (ha valódi projektekről beszélünk). Van egy külön leckénk az XML-ről .
BSON (bináris JSON)
Ahogy a neve is sugallja, a BSON nagyon hasonlít a JSON-hoz, de ember számára nem olvasható, és bináris adatokat használ. Ennek köszönhetően nagyon jó képek és egyéb mellékletek tárolására, átvitelére. Ezenkívül a BSON támogat néhány olyan adattípust, amelyek nem állnak rendelkezésre a JSON-ban. Például egy BSON-fájl tartalmazhat dátumot (ezredmásodperces formátumban), vagy akár JavaScript-kódot is. A népszerű MongoDB NoSQL adatbázis BSON formátumban tárolja az információkat.Pozíció alapú protokoll
Bizonyos helyzetekben drasztikusan csökkentenünk kell az elküldött adatok mennyiségét (például ha sok adatunk van, és csökkenteni kell a terhelést). Ebben a helyzetben használhatjuk a pozícióalapú protokollt, azaz paraméterértékeket küldhetünk maguknak a paramétereknek a neve nélkül.
"Leo Tolstoy" | "Anna Karenina" | 1873
Az ilyen formátumú adatok többször kevesebb helyet foglalnak el, mint egy teljes JSON-fájl. Persze vannak más szerializációs formátumok is, de nem kell most mindegyiket ismerned :) Jó, ha az alkalmazások fejlesztése során ismered az aktuális iparági szabványos formátumokat, és emlékszel azok előnyeire, illetve arra, hogy miben különböznek az egyiktől egy másik. És ezzel a leckénk is véget ér :) Ma ne felejts el megoldani pár feladatot! A következő alkalomig! :)
GO TO FULL VERSION