Core Logic
La Data Serialization è il processo di conversione dei dati in un formato standardizzato per consentirne l’archiviazione o la trasmissione tra applicazioni diverse (es. Python e Java) e tra controller SDN e dispositivi di rete. È il linguaggio universale delle API e dell’automazione.
🏗️ Fondamenti della Serializzazione
La serializzazione permette di rappresentare variabili e strutture dati complesse sotto forma di testo leggibile 01:34. Senza uno standard, due applicazioni scritte in linguaggi diversi non potrebbero interpretare correttamente i dati scambiati 02:53.
Variabili come Container
In questo contesto, le variabili sono container che memorizzano valori (es.
interface_name:GigabitEthernet1/1) 02:37.
🌐 JSON (JavaScript Object Notation)
È il formato più rilevante per l’esame CCNA (Topic 6.7) ed è ampiamente utilizzato nelle REST API 04:10.
Caratteristiche Chiave:
- Standard: Definito in RFC 8259 04:41.
- Indipendenza: Nonostante il nome, è indipendente dal linguaggio di programmazione.
- Whitespace: Spazi e a capo sono insignificanti per il computer (ma utili per l’uomo) 05:19.
📑 Data Types in JSON
JSON supporta 6 tipi di dati fondamentali, divisi in primitivi e strutturati 05:33:
| Tipo | Descrizione | Esempio | Timestamp |
|---|---|---|---|
| String | Testo racchiuso in doppi apici "" | "Up", "10.1.1.1" | 05:55 |
| Number | Valore numerico (senza apici) | 1000, 1.5 | 06:18 |
| Boolean | Valore logico (case sensitive: minuscolo) | true, false | 06:39 |
| Null | Assenza intenzionale di un valore | null | 07:28 |
| Object | Lista non ordinata di coppie key-value {} | {"key": "value"} | 08:06 |
| Array | Lista ordinata di valori racchiusa in [] | ["G0/1", "G0/2"] | 12:47 |
Errore Comune
Una stringa che contiene un numero (es.
"5") è diversa da un tipo Number (es.5). In JSON, i doppi apici definiscono sempre una String 06:27.
🏗️ Strutture Dati Complesse
- Key-Value Pairs: La chiave deve essere sempre una stringa, separata dal valore da due punti
:08:19. - Nested Objects: Un oggetto può contenere un altro oggetto come valore, permettendo gerarchie complesse 11:55.
- Array di Oggetti: Spesso usato per elencare configurazioni simili, come le interfacce di un router 14:04.
📊 Confronto tra Formati (XML vs YAML)
🏷️ XML (Extensible Markup Language)
Nato come linguaggio di markup (simile a HTML), oggi usato per la serializzazione 15:10.
- Utilizza i tag per definire chiavi e valori:
<key>value</key>15:51. - È considerato meno leggibile dall’uomo rispetto a JSON 15:31.
📝 YAML (YAML Ain’t Markup Language)
Il formato più “human-friendly”, molto usato in tool di automazione come Ansible 17:26.
- Significatività del Whitespace: A differenza di JSON/XML, l’indentazione è fondamentale per definire la struttura 18:05.
- Inizia tipicamente con tre trattini
---18:15. - Liste indicate con un trattino
-18:18.
⚖️ Tabella Comparativa Finale
| Feature | JSON | XML | YAML |
|---|---|---|---|
| Leggibilità | Alta | Media | Eccellente |
| Sintassi | { }, [ ], : | <tag> </tag> | Indentazione, - |
| Utilizzo Principale | REST APIs | REST / Legacy | Ansible / Config |
| Whitespace | Irrilevante | Irrilevante | Significativo |
Quiz Review