- docx (format Microsoft Word);
- pdf (format Adobe);
- mobi (utilizat în mod obișnuit pe dispozitivele Amazon Kindle);
- și multe altele (ePub, djvu, fb2 etc.).
JSON
Notarea obiectelor JavaScript. Știți deja puțin despre acest format! Am vorbit despre asta în această lecție și am acoperit serializarea în JSON chiar aici . Și-a primit numele dintr-un motiv. Obiectele Java convertite în JSON arată de fapt exact ca obiectele din JavaScript. Nu trebuie să cunoașteți JavaScript pentru a înțelege obiectul nostru:
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
}
Nu ne limităm la trimiterea unui singur obiect. Formatul JSON poate reprezenta, de asemenea, o matrice de obiecte:
[
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
},
{
"title": "Demons",
"author": "Fyodor Dostoyevsky",
"year": 1872
},
{
"title": "The Seagull",
"author": "Anton Chekhov",
"year": 1896
}
]
Deoarece JSON reprezintă obiecte JavaScript, acceptă următoarele formate de date JavaScript:
- siruri de caractere;
- numere;
- obiecte;
- matrice;
- boolean (adevărat și fals);
- nul.
-
Format care poate fi citit de om. Acesta este un avantaj evident dacă utilizatorul final este un om. De exemplu, să presupunem că serverul dvs. are o bază de date cu un program de zboruri. Un client uman, care stă la computerul său acasă, solicită date din această bază de date folosind o aplicație web. Deoarece trebuie să furnizați date într-un format pe care el îl poate înțelege, JSON este o soluție excelentă.
-
Simplitate. Este super simplu :) Mai sus, am dat un exemplu de două fișiere JSON. Și chiar dacă nu ați auzit despre JavaScript (darămite obiecte JavaScript), puteți înțelege cu ușurință tipul de obiecte descrise acolo.
Întreaga documentație JSON constă într-o pagină web cu câteva imagini. -
Utilizare pe scară largă. JavaScript este limbajul front-end dominant și are propriile cerințe. Utilizarea JSON este o necesitate. Prin urmare, un număr mare de servicii web folosesc JSON ca format de schimb de date. Fiecare IDE modern acceptă formatul JSON (inclusiv IntelliJ IDEA). Au fost scrise o grămadă de biblioteci pentru tot felul de limbaje de programare pentru a permite lucrul cu JSON.
YAML
Inițial, YAML a reprezentat „Yet Another Markup Language”. Când a început, a fost poziționat ca un concurent pentru XML. Acum, odată cu trecerea timpului, YAML a ajuns să însemne „YAML Ain’t Markup Language”. Ce este mai exact? Să ne imaginăm că trebuie să creăm 3 clase pentru a reprezenta personaje într-un joc pe computer: Războinic, Mag și Hoț. Vor avea următoarele caracteristici: forță, agilitate, rezistență, un set de arme. Iată cum ar arăta un fișier YAML care descrie clasele noastre:
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
Un fișier YAML are o structură arborescentă: unele elemente sunt imbricate în altele. Putem controla imbricarea folosind un anumit număr de spații, pe care le folosim pentru a desemna fiecare nivel. Care sunt avantajele formatului YAML?
-
Lizibil de om. Din nou, chiar și văzând un fișier YAML fără o descriere, puteți înțelege cu ușurință obiectele pe care le descrie. YAML este atât de ușor de citit, încât site-ul web yaml.org este un fișier YAML obișnuit :)
-
Compactitate. Structura fișierului este creată folosind spații: nu este nevoie să folosiți paranteze sau ghilimele.
-
Suport pentru structuri de date native pentru limbaje de programare. Uriașul avantaj al YAML față de JSON și multe alte formate este că acceptă diferite structuri de date. Ei includ:
-
!!map
Un set neordonat de perechi cheie-valoare care nu pot avea duplicate; -
!!omap
O secvență ordonată de perechi cheie-valoare care nu poate avea duplicate; -
!!perechi:
O secvență ordonată de perechi cheie-valoare care pot avea duplicate; - !!set
O secvență neordonată de valori care nu sunt egale între ele; - !!seq
O succesiune de valori arbitrare;
Veți recunoaște unele dintre aceste structuri din Java! :) Aceasta înseamnă că diferite structuri de date din limbaje de programare pot fi serializate în YAML.
-
-
Abilitatea de a utiliza ancora și alias
Acești marcatori vă permit să identificați un element dintr-un fișier YAML și apoi să faceți referire la el în restul fișierului dacă apare în mod repetat. O ancoră este creată folosind simbolul & și un alias este creat folosind * .
Să presupunem că avem un fișier care descrie cărți de Lev Tolstoi. Pentru a evita să scriem numele autorului pentru fiecare carte, pur și simplu creăm ancora leu și ne referim la ea folosind un alias atunci când avem nevoie de ea:
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
Când acest fișier este analizat, valoarea „Lev Tolstoi” este înlocuită în locurile potrivite unde avem aliasurile noastre.
- YAML poate încorpora date în alte formate. De exemplu, 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 } ]
Alte formate de serializare
XML
Acest format se bazează pe un arbore de etichete.
<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
Fiecare element constă dintr-o etichetă de deschidere și de închidere (<> și </>). Fiecare element poate avea elemente imbricate. XML este un format comun care este la fel de bun ca JSON și YAML (dacă vorbim de proiecte reale). Avem o lecție separată despre XML .
BSON (JSON binar)
După cum sugerează și numele, BSON este foarte asemănător cu JSON, dar nu poate fi citit de om și utilizează date binare. Drept urmare, este foarte bun pentru stocarea și transferul de imagini și alte atașamente. În plus, BSON acceptă unele tipuri de date care nu sunt disponibile în JSON. De exemplu, un fișier BSON poate include o dată (în format de milisecunde) sau chiar o bucată de cod JavaScript. Populara bază de date MongoDB NoSQL stochează informații în format BSON.Protocol bazat pe poziție
În unele situații, trebuie să reducem drastic cantitatea de date trimise (de exemplu, dacă avem multe date și trebuie să reducem încărcarea). În această situație, putem folosi protocolul bazat pe poziție, adică trimitem valorile parametrilor fără numele parametrilor înșiși.
"Leo Tolstoy" | "Anna Karenina" | 1873
Datele în acest format ocupă de câteva ori mai puțin spațiu decât un fișier JSON complet. Desigur, există și alte formate de serializare, dar nu trebuie să le cunoașteți pe toate chiar acum :) Este bine dacă sunteți familiarizat cu formatele standard actuale ale industriei atunci când dezvoltați aplicații și vă amintiți avantajele și modul în care diferă de unul. o alta. Și cu aceasta, lecția noastră se încheie :) Nu uitați să rezolvați câteva sarcini astăzi! Pana data viitoare! :)
GO TO FULL VERSION