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:

TipoDescrizioneEsempioTimestamp
StringTesto racchiuso in doppi apici """Up", "10.1.1.1"05:55
NumberValore numerico (senza apici)1000, 1.506:18
BooleanValore logico (case sensitive: minuscolo)true, false06:39
NullAssenza intenzionale di un valorenull07:28
ObjectLista non ordinata di coppie key-value {}{"key": "value"}08:06
ArrayLista 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

FeatureJSONXMLYAML
LeggibilitàAltaMediaEccellente
Sintassi{ }, [ ], :<tag> </tag>Indentazione, -
Utilizzo PrincipaleREST APIsREST / LegacyAnsible / Config
WhitespaceIrrilevanteIrrilevanteSignificativo

Quiz Review

  • In JSON, l’ultima coppia key-value di un oggetto non deve avere la virgola finale 13:31.
  • In YAML, la corretta indentazione definisce l’appartenenza di un dato a un oggetto superiore 18:09.

Networks CCNA Automation JSON XML YAML