- docx (formato Microsoft Word);
- pdf (formato Adobe);
- mobi (comunemente utilizzato nei dispositivi Amazon Kindle);
- e molto altro (ePub, djvu, fb2...).
JSON
Notazione oggetto JavaScript. Lo conosci già un po'! Ne abbiamo parlato in questa lezione e abbiamo esaminato la serializzazione in JSON qui . Ha preso il nome per un motivo. Gli oggetti Java convertiti in JSON in realtà assomigliano esattamente agli oggetti JavaScript. Non è necessario conoscere JavaScript per comprendere il significato del nostro oggetto:{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
}
Non è necessario passare un oggetto. JSON può anche contenere una serie di oggetti:
[
{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
},
{
"title": "Бесы",
"author": "Федор Достоевский",
"year": 1872
},
{
"title": "Чайка",
"author": "Антон Чехов",
"year": 1896
}
]
Poiché JSON è un oggetto JavaScript, supporta i seguenti formati di dati JavaScript:
- stringhe;
- numeri (numero);
- oggetti (oggetto);
- array (array);
- valori booleani (vero e falso);
- nullo.
-
Formato leggibile dall'uomo. Questo è un ovvio vantaggio se il tuo utente finale è umano. Ad esempio, il tuo server memorizza un database con gli orari dei voli. Un cliente umano richiede dati da questo database utilizzando un'applicazione web mentre è seduto a casa davanti a un computer. Poiché è necessario fornire i dati in un formato comprensibile, JSON è un'ottima soluzione.
-
Semplicità. Si potrebbe dire che è elementare :) Sopra abbiamo fornito un esempio di due file JSON. E anche se non hai mai sentito parlare dell'esistenza di JavaScript (per non parlare dei suoi oggetti), puoi facilmente capire che tipo di oggetti vengono descritti lì.
L'intera documentazione JSON è una pagina Web con un paio di immagini. -
Esteso. JavaScript è il linguaggio front-end dominante e ne detta i termini. Usare JSON è un must. Pertanto, un numero enorme di servizi Web utilizza JSON come formato per lo scambio di dati. Ogni IDE moderno supporta il formato JSON (incluso Intellij IDEA). Sono state scritte numerose librerie per lavorare con JSON per tutti i possibili linguaggi di programmazione.
YAML
All’inizio della sua esistenza stava per Yet Another Markup Language – “un altro linguaggio di markup”. All'epoca era posizionato come concorrente di XML. Ora, con il passare del tempo, sta per “YAML Ain't Markup Language” (“YAML non è un linguaggio di markup”). Come è lui? Immaginiamo di dover creare 3 classi di personaggi per il nostro gioco per computer: Guerriero, Mago e Ladro. Avranno le seguenti caratteristiche: forza, agilità, resistenza e un set di armi. Questo è come apparirà il nostro file YAML con le descrizioni delle classi: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
Il file YAML ha una struttura ad albero: alcuni elementi sono annidati all'interno di altri. Possiamo controllare l'annidamento utilizzando un certo numero di spazi per denotare ciascun livello. Quali vantaggi ha il formato YAML?
-
Leggibile dagli umani. Ancora una volta, anche se vedi un file yaml senza descrizione, puoi facilmente capire quali oggetti sono descritti lì. YAML è così leggibile dall'uomo che la pagina principale di yaml.org è un normale file yaml :)
-
Compattezza. La struttura del file è formata da spazi: non è necessario utilizzare parentesi o virgolette.
-
Supporto per strutture dati native dei linguaggi di programmazione. Un enorme vantaggio di YAML rispetto a JSON e molti altri formati è che supporta diverse strutture dati. Tra loro:
-
!!map
Una raccolta non ordinata di coppie chiave:valore senza possibilità di duplicati; -
!!omap
Una sequenza ordinata di coppie chiave:valore senza possibilità di duplicati; -
!!coppie:
una sequenza ordinata di coppie chiave:valore con possibilità di duplicati; - !!set
Una sequenza non ordinata di valori che non sono uguali tra loro; - !!seq
Sequenza di valori arbitrari;
Alcune di queste strutture ti saranno familiari da Java! :) Grazie a questa funzionalità, puoi serializzare varie strutture dati dai linguaggi di programmazione nel formato YAML.
-
-
Possibilità di utilizzare ancoraggi e alias
Traduzione delle parole "ancora" e "alias" - "ancora" e "pseudonimo". In linea di principio, descrive in modo abbastanza accurato l'essenza di questi termini in YAML.
Permettono di identificare un elemento in un file yaml e di farvi riferimento nel resto del file se si verifica ripetutamente. L'ancoraggio viene creato utilizzando il simbolo
&
e l'alias viene creato utilizzando*
.Supponiamo di avere un file con le descrizioni dei libri di Leone Tolstoj. Per evitare di scrivere ogni volta manualmente il nome dell'autore, creeremo semplicemente un'ancora "leo" e faremo riferimento ad essa utilizzando un alias quando ne avremo bisogno:
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
Quando leggeremo questo file con qualche parser, il valore “Leo Tolstoy” verrà sostituito nei posti giusti al posto del nostro alias.
- Puoi incorporare dati in altri formati in YAML. Ad esempio, 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 } ]
Altri formati di serializzazione
XML
Questo formato si basa sul cosiddetto albero dei tag.<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
Ogni elemento è costituito da un tag di apertura e uno di chiusura (<> e </>). Ogni elemento può avere elementi nidificati. XML è un formato comune, non inferiore a JSON e YAML (se parliamo di utilizzo in progetti reali). Abbiamo una lezione separata su XML .
BSON (JSON binario)
Come suggerisce il nome, è molto simile a JSON, ma non è leggibile dall'uomo e opera su dati in formato binario. Ciò lo rende molto comodo per archiviare e trasferire immagini e altri allegati. Inoltre, BSON supporta alcuni tipi di dati che non sono disponibili in JSON. Ad esempio, puoi scrivere una data (in formato millisecondo) o anche un pezzo di codice JavaScript in un file BSON. Il popolare database NoSQL MongoDB memorizza le informazioni in formato BSON.Protocollo basato sulla posizione
In alcune situazioni, dobbiamo ridurre drasticamente la quantità di dati trasferiti (ad esempio, se i dati sono molti e dobbiamo ridurre il carico). In questa situazione possiamo utilizzare il protocollo position based , cioè passare i valori dei parametri senza i nomi dei parametri stessi."Leo Tolstoy" | "Anna Karenina" | 1873
I dati in questo formato occupano molto meno spazio di un file JSON completo. Naturalmente, esistono altri formati di serializzazione, ma non è necessario conoscerli tutti adesso :) È utile avere familiarità con i formati che ora sono lo standard del settore per lo sviluppo di applicazioni e ricordare i vantaggi e le differenze reciproci . E la nostra lezione è giunta al termine :) Non dimenticare di risolvere un paio di problemi oggi! Ci vediamo! :)
GO TO FULL VERSION