JavaScript Object Notation (JSON in breve, pronunciato in modo simile al nome ‘Jason’), è un tipo di formato per la condivisione dei dati. Come evidenziato dal suo nome, JSON deriva da JavaScript, ma non è l’unico proprietario del codice che ne consente l’utilizzo. Infatti, molti altri linguaggi di programmazione lo hanno a disposizione per il loro uso, tra cui Ruby, PHP, Python, e Java.
Quando esiste da solo, il file JSON utilizza l’estensione .json, ma essendo un formato facilmente trasmissibile tra un server web e un client (or browser), può anche essere definito come un formato .html. In questo caso, può essere un oggetto assegnato a una variabile o apparire come una stringa JSON all’interno di virgolette.
JSON è una buona alternativa a XML in quanto è più leggibile e richiede una formattazione minima. Questo tutorial ti insegnerà i dati che possono essere memorizzati nei file JSON, nonché la sintassi generale e la struttura del formato.
Struttura & Sintassi
Un oggetto JSON è un formato di dati che utilizza parentesi graffe per rappresentare coppie chiave-valore. Quando si ha a che fare con JSON, lo si vedrà più spesso rappresentato nei file .json, ma nell’ambito di un programma, può anche esistere come stringa o come oggetto JSON.
Ecco un esempio di come appare un oggetto JSON:

Sebbene questo sia un esempio piuttosto breve, e gli oggetti JSON possano essere molto più lunghi, dimostra accuratamente come il formato sia tipicamente impostato con due parentesi graffe a ciascuna estremità, con coppie chiave-valore che riempiono lo spazio intermedio. La maggior parte dei dati in JSON è incapsulata in un elemento JSON.
C’è un due punti che delimita le coppie chiave-valore (“chiave” : “valore”). Ciascuna di queste coppie è separata come elemento diverso della lista da una virgola. Ciò si traduce nella parte centrale di una formattazione JSON nel seguente modo: “chiave” : “valore”, “chiave” : “valore”, “chiave” : “valore”. Nell’esempio sopra, "name" : "Akshay" è la prima coppia chiave-valore, per esempio.
Le chiavi in ciascun oggetto devono essere uniche, possono essere rappresentate come qualsiasi stringa valida, racchiuse tra doppie virgolette (“chiave”), e sono sempre posizionate sul lato sinistro dei due punti. Sebbene gli spazi vuoti nelle stringhe delle chiavi siano consentiti (come in “primo nome”), ciò presenta un approccio più impegnativo dal punto di vista della programmazione in termini di accesso. Per questo motivo, la pratica di programmazione comunemente adottata consiste nel sostituire gli spazi vuoti nelle chiavi con trattini bassi (“primo_nome”).
I valori in JSON sono posizionati a destra dei due punti. Nella loro granularità più elementare, questi devono essere uno di 6 tipi di dati particolari:
- Numeri
- Oggetti
- Array
- Stringhe
- Vero o Falso (Booleano)
- Null
La sezione successiva coprirà tipi di dati più complessi dell’array di oggetti JSON, con ciascun valore passato in JSON che conserva la propria sintassi. In altre parole, le stringhe continueranno ad apparire tra virgolette mentre il valore numerico no.
Il formato JSON è tipicamente elencato in un formato multilinea per convenzione. Tuttavia, può anche essere formattato in una singola riga:

Questo tipo di formattazione è più comune quando si incontra una stringa JSON o all’interno di un altro tipo di file. Quando si lavora con set di dati enormi, scrivere i due punti e le coppie chiave-valore su righe singole rende l’elenco più leggibile all’occhio umano, poiché JSON è privo dell’aiuto separatore degli spazi vuoti:

Sebbene l’oggetto JSON somigli a JavaScript, è importante tenere a mente che si tratta di formati distinti. Mentre JavaScript consente l’uso di funzioni, JSON no. Ciò che rende JSON così prezioso è la sua compatibilità cross-linguaggio, che consente a tutte le piattaforme di programmazione di interpretarlo.
Finora abbiamo solo esaminato il formato JSON nella sua forma più semplice, ma può evolversi gerarchicamente e in modo più complesso quando include oggetti e array nidificati. Nella prossima sezione, vedremo un JSON più avanzato.
Utilizzo di tipi JSON complessi
Oltre agli array nidificati, JSON può anche memorizzare oggetti nidificati. Questi oggetti e array verranno trasferiti come valori per le chiavi e saranno associati alle chiavi per formare coppie chiave-valore.
- Formazione di oggetti nidificati
Nel seguente users.json file immagine, c'è un oggetto JSON annidato trasmesso per ognuno dei quattro utenti (“akshay”, “sam”, “Andrew”, “James”). Ciascun utente possiede le proprie chiavi annidate (“location” e “username”):

La parte evidenziata rappresenta un esempio del primo oggetto annidato. Le parentesi graffe sono utilizzate nell'esempio sopra per creare un oggetto JSON annidato con un nome utente corrispondente e i dettagli della posizione per ciascuno dei quattro utenti. Quando si utilizzano gli oggetti, le virgole vengono utilizzate per distinguere gli elementi in base al particolare attributo dell'utente.
- Formazione di array annidati
Gli array Javascript passati come valore possono anche essere sfruttati per annidare dati all'interno del formato JSON. Questo viene fatto utilizzando [ ] (parentesi quadre) alla fine dei tipi di array, con gli array che sono liste strutturate con tipi di dati univoci inclusi:

Nella sezione evidenziata degli esempi sopra, i 2 profili di social media e i 2 link di siti web di Akshay’s sono ciascuno utilizzati all'interno di un array di informazioni annidate, a causa della presenza delle parentesi quadre. Coinvolgendo l'annidamento in questo modo in JSON, possiamo ottenere una maggiore versatilità nel lavorare con contenuti di dati gerarchici e complessi.
- Confronto con XML
Extensible Markup Language (XML) fornisce un metodo per memorizzare dati a cui possono accedere sia le macchine che gli esseri umani. Come il JSON, l'XML può essere utilizzato da molti linguaggi di programmazione. A differenza del JSON, l'XML comporta una quantità di testo significativamente maggiore ed è, quindi, più complesso e richiede più tempo per essere assemblato. Mentre una funzione standard può analizzare il JSON, l'XML richiede un parser specifico per XML. Inoltre, l'XML non è in grado di utilizzare gli array. Confrontiamo gli stessi dati formattati in XML rispetto a JSON:

L'XML richiede una quantità di testo significativamente maggiore e occupa più spazio. Richiede anche tag di chiusura, mentre il JSON è molto più compatto e disposto in modo semplice. Chi ha familiarità con l'HTML noterà probabilmente la somiglianza nell'uso dei tag da parte dell'XML.
Prima di decidere quale formato utilizzare, è sempre utile valutare la portata e le esigenze del progetto. Il JSON è meno logorroico, più snello e veloce da usare per le app AJAX e altre situazioni. Il tipo di progetto aiuterà a individuare le strutture dati più adatte da utilizzare.
Saperne di più su JSON
Il JSON è un formato versatile e naturale che può essere implementato in più linguaggi di programmazione. Potrai trovare l'elenco completo dei linguaggi supportati nella pagina “Introducing JSON”. Inoltre, le informazioni sull'analisi e sulla compatibilità possono essere trovate nella “libreria iQuery”.
Alla fine, molto probabilmente non scriverai JSON puro troppo spesso. Al contrario, lo recupererai da fonti di dati o tradurrai altri file di dati in JSON. Utilizzando lo strumento open-source Mr. Data Converter, puoi tradurre i dati CSV o delimitati da tabulazioni presenti nei programmi di fogli di calcolo in JSON. Con la piattaforma utilities-online.info con licenza Creative Commons, puoi tradurre XML in JSON e viceversa. Quando utilizzi software automatizzati, ricontrolla i report per eliminare qualsiasi ridondanza.
Puoi anche utilizzare JSONLint per verificare il tuo JSON e JFiddle per valutarlo in un contesto di sviluppo web quando converti altri tipi nel formato JSON.
Conclusione
Ottenendo un maggiore supporto API (inclusa l'API di Twitter), il JSON è un formato di dati leggero che favorisce la semplicità nella modifica, memorizzazione e condivisione dei dati. Poiché non genererai i tuoi file .json ma piuttosto li riceverai da altri canali, è più importante pensare a come utilizzare il JSON nei tuoi programmi piuttosto che alla sua struttura.
Ecco altre risorse dal nostro blog che ti aiuteranno a programmare con JavaScript:
- Scopri come funzionano i prototipi e l'ereditarietà in Javascript
- Esplora in dettaglio come aggiungere JavaScript all'HTML.
- Se stai creando la tua applicazione web, dai un'occhiata alla nostra guida su come scegliere la migliore configurazione del server.
Buona programmazione!
Commenti
Ancora nessun commento. Scrivi il primo.