back to top

JSON: gestire oggetti annidati

Nella notazione JSON gli oggetti sono rappresentati da coppie di chiavi e valori delimitate sintatticamente da parentesi graffe ("{}"). Le chiavi devono essere delle stringhe, mentre i valori devono essere associati ad un tipo di dato valido per JSON, ad esempio una stringa, un numero o un array; chiavi e valori andranno divisi dal simbolo dei due punti (":") mentre le coppie chiave/valore saranno separate tra loro da una virgola (",").

Per un rapido ripasso sulla struttura di un file JSON vi invito alla lettura di questo articolo.

Un semplice esempio di oggetti JSON potrebbe essere quindi il seguente:

{ "nome":"Homer", "anni":38, "capelli":null }

L’accesso agli oggetti è poi possibile tramite il simbolo del punto (".", secondo la regola della dot notation), in questo modo:

mySim = { "nome":"Homer", "anni":38, "capelli":null }
h = mySim.anni;

o sfruttando una sintassi che prevede di delimitare la chiave desiderata tramite parentesi quadre e apici ("[".."]", secondo la regola della bracket notation):

mySim = { "nome":"Homer", "anni":38, "capelli":null }
h = mySim["anni"];

Un caso particolare, ma non infrequente, è però quello in cui il valore o i valori di un oggetto JSON sono a loro volta degli oggetti JSON, caso per il quale dovremo parlare di oggetti annidati (Nested JSON Objects) e utilizzare una sintassi più articolata ma non complicata. Analizziamo un semplice esempio che rappresenta un’estensione di quanto già proposto:

mySim = {
    "nome":"Homer",
    "anni":38,
    "capelli":null,
    "figli": {
        "primofiglio":"Bart",
        "secondofiglio":"Lisa",
        "terzofiglio":"Maggie"
    }
}

Abbiamo quindi una chiave, "figli", associata a tre coppie chiave/valore che sono 3 oggetti differenti e che ne rappresentano il valore; data la disposizione degli elementi appare chiaro come non sia possibile accedere a questi ultimi ricorrendo alla sintassi presentata in precedenza. Fortunatamente JSON non prevede l’introduzione di nuove espressioni per la risoluzione del problema, quindi potremo utilizzare anche in questo caso la dot notation:

h = mySim.figli.secondofiglio;

e la bracket notation:

h = mySim.figli["secondofiglio"];

E’ interessante notare come questa sintassi possa essere utilizzata anche per ridefinire i valori degli oggetti annidati. Si immagini per esempio di voler modificare il valore associato al secondo oggetto/valore dell’oggetto "figli"; utilizzando la dot notation avremo:

mySim.figli.secondofiglio= "Milhouse";

con la bracket notation avremo invece:

mySim.figli["secondofiglio"] = "Milhouse";
Pubblicitร 
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.

Leggi anche...

Infinite scroll, come programmarlo su AMP e su Web con Javascript

L'infinite scroll è una tecnica di design e navigazione...

Codice Fiscale: 5 javascript per la verifica e il calcolo

Il codice fiscale รจ un identificativo tributario univoco che...

Math.ceil() – Arrotondare per eccesso con Javascript

Il metodo ceil() dell'oggetto Math di Javascript è utilizzato...

Minificare Javascript: librerie e strumenti online per comprimere il sorgente JS

La minificazione è un processo abbastanza diffuso nell'implementazione delle...

Javascript: svuotare un campo input o una textarea con un click

Quando si fornisce agli utenti un modulo per l'inserimento...

6 video player HTML5 per il tuo sito web

Con il rilascio delle specifiche definitive per HTML5 molte...
Pubblicitร