In questo articolo, Il formato dati JSON, vediamo come è possibile rappresentare dati con un formato semplice e flessibile: JSON
Indice dei contenuti
Cos’è JSON
JSON (JavaScript Object Notation) è un formato di rappresentazione dei dati strutturati, leggero e testuale, ampiamente utilizzato per lo scambio di informazioni tra applicazioni e sistemi informatici. La sua diffusione è dovuta principalmente alla semplicità sintattica, alla facilità di lettura sia per l’uomo sia per le macchine e all’elevata interoperabilità tra linguaggi di programmazione differenti.
JSON consente di descrivere dati strutturati in modo chiaro e compatto, riducendo la complessità rispetto ad altri formati più verbosi. Per questo motivo è oggi lo standard di riferimento nella comunicazione client-server all’interno delle applicazioni Web moderne, in particolare nelle API REST.
La notazione JSON è facile da scrivere, analizzare e interpretare, caratteristiche che ne hanno favorito una rapida adozione da parte degli sviluppatori.
Origine e diffusione di JSON
JSON è stato ideato nei primi anni 2000 da Douglas Crockford con l’obiettivo di semplificare lo scambio di dati tra client e server nelle applicazioni Web. Sebbene si basi su un sottoinsieme della sintassi del linguaggio JavaScript, JSON è completamente indipendente dalla piattaforma e dal linguaggio di programmazione.
Qualsiasi linguaggio in grado di analizzare una stringa di testo può gestire dati in formato JSON. Per questo motivo JSON è oggi utilizzato in numerosi contesti e linguaggi, tra cui Java, Python, PHP, Ruby, C#, Go e molti altri.
Differenze tra XML e JSON
JSON e XML sono entrambi formati utilizzati per lo scambio di dati strutturati, ma presentano differenze significative.
XML è un linguaggio più verboso, basato su tag di apertura e chiusura, e prevede l’uso di strutture aggiuntive come namespace, attributi e schemi. Nei documenti complessi, la lettura e la comprensione della struttura complessiva richiedono spesso un’analisi approfondita dell’intero file.
JSON, invece, utilizza una sintassi molto più compatta e immediata. La struttura dei dati è facilmente comprensibile anche a colpo d’occhio, caratteristica particolarmente utile nei progetti di grandi dimensioni e nei team di sviluppo eterogenei, in cui programmatori che utilizzano linguaggi diversi devono collaborare sullo stesso sistema.
Un ulteriore vantaggio di JSON è la ridotta dimensione dei file rispetto a XML, che si traduce in una comunicazione più efficiente e veloce, soprattutto nelle applicazioni Web e nelle API.
Confronto tra XML e JSON: un esempio
Documento XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<libri>
<libro>
<autore>Mark Twain</autore>
<titolo>Le avventure di Huckleberry Finn</titolo>
<prezzo>9.90</prezzo>
</libro>
<libro>
<autore>Herman Melville</autore>
<titolo>Moby Dick</titolo>
<prezzo>15.10</prezzo>
</libro>
</libri>Oggetto JSON equivalente
{
"libri": {
"libro": [
{
"autore": "Mark Twain",
"titolo": "Le avventure di Huckleberry Finn",
"prezzo": 9.90
},
{
"autore": "Herman Melville",
"titolo": "Moby Dick",
"prezzo": 15.10
}
]
}
}Dal confronto emerge chiaramente come JSON risulti più compatto e leggibile, soprattutto in presenza di strutture annidate.
Struttura del formato JSON
JSON è basato esclusivamente su due strutture fondamentali:
- un insieme di coppie nome/valore
- una lista ordinata di valori
Queste due strutture sono sufficienti per rappresentare qualsiasi tipo di dato complesso.
Oggetti letterali JSON
Un oggetto JSON è costituito da un insieme di coppie proprietà: valore, separate da virgole e racchiuse tra parentesi graffe { }.
A differenza di JavaScript, JSON ammette solo valori semplici e atomici:
- stringhe
- numeri
- booleani
- array
- oggetti
null
Non è possibile includere funzioni o espressioni di codice.
Tipi di dato JSON
Number
JSON supporta esclusivamente numeri in virgola mobile a doppia precisione.
Non sono previsti numeri ottali, esadecimali, NaN o Infinity.
{ "giorniMarzo": 31 }String
Sequenze di caratteri Unicode racchiuse tra virgolette doppie.
{ "nome": "Mario" }Boolean
Valori booleani true o false.
{ "promosso": true }Array
Liste ordinate di valori racchiuse tra parentesi quadre.
{ "numeri": [1, 2, 3, 4] }Object
Insiemi non ordinati di coppie nome/valore.
{
"studente": {
"nome": "Anna",
"eta": 18
}
}Whitespace
Spazi, tabulazioni e ritorni a capo sono ammessi per migliorare la leggibilità.
null
Indica l’assenza di valore.
{ "indirizzo": null }A cosa serve JSON
JSON è utilizzato in numerosi contesti, tra cui:
- Comunicazione client/server nel Web, in particolare nelle API REST
- Archiviazione di dati strutturati, ad esempio file di configurazione
- Scambio di dati tra linguaggi diversi, grazie alla sua indipendenza dalla piattaforma
Creare, leggere e manipolare file JSON
La creazione di file JSON è semplice e può essere effettuata con un qualsiasi editor di testo. Inoltre, quasi tutti i linguaggi di programmazione mettono a disposizione librerie dedicate per la generazione e la lettura di dati JSON.
Una volta caricati in memoria, i dati JSON possono essere facilmente:
- letti
- modificati
- estesi
- eliminati
Questa flessibilità rende JSON particolarmente adatto allo sviluppo di applicazioni dinamiche.
JSON e PHP
A partire da PHP 5.2, il supporto a JSON è integrato nativamente tramite due funzioni fondamentali:
json_encode()json_decode()
La funzione json_encode()
json_encode() converte una variabile PHP in una stringa JSON.
Esempio con array indicizzato
<?php
$frutta = array("mela", "banana", "arancia", "kiwi");
echo json_encode($frutta);
?>Output:
["mela","banana","arancia","kiwi"]Esempio con array associativo
<?php
$persona = array(
"nome" => "Mario",
"cognome" => "Rossi",
"eta" => 30
);
echo json_encode($persona);
?>Output:
{"nome":"Mario","cognome":"Rossi","eta":30}Esempio con oggetto PHP
<?php
class Atleta {
public $nome;
public $sport;
public $eta;
public function __construct($nome, $sport, $eta) {
$this->nome = $nome;
$this->sport = $sport;
$this->eta = $eta;
}
}
$atleta = new Atleta("Luca", "Calcio", 25);
echo json_encode($atleta);
?>
Output:
{"nome":"Luca","sport":"Calcio","eta":25}La funzione json_decode()
json_decode() converte una stringa JSON in una variabile PHP.
Per impostazione predefinita restituisce un oggetto, ma può restituire un array associativo se il secondo parametro è impostato a true.
<?php
$json = '{"nome":"Anna","cognome":"Verdi","eta":28}';
$obj = json_decode($json);
echo $obj->nome;
$array = json_decode($json, true);
print_r($array);
?>Output:
AnnaArray
(
[nome] => Anna
[cognome] => Verdi
[eta] => 28
)Conclusioni
JSON rappresenta oggi uno degli strumenti fondamentali nello sviluppo delle applicazioni Web moderne. Grazie alla sua semplicità, leggerezza e indipendenza dal linguaggio, è diventato lo standard de facto per lo scambio di dati tra sistemi distribuiti.
La sua integrazione nativa in linguaggi come PHP, JavaScript e Python lo rende uno strumento essenziale per la realizzazione di API, servizi Web e applicazioni dinamiche, costituendo una competenza chiave per chi opera nel settore dell’informatica e delle reti.

Lascia un commento