Guida al formato JSON: cos'è e come validarlo nelle API moderne
Il formato JSON (JavaScript Object Notation) è diventato lo standard de facto per lo scambio di dati nel web moderno. Leggero, indipendente dal linguaggio di programmazione e intuitivo sia per gli sviluppatori che per le macchine, JSON alimenta la stragrande maggioranza delle API RESTful odierne. Tuttavia, ricevere dati strutturati non basta: garantire la loro correttezza e integrità tramite una validazione rigorosa è fondamentale per la sicurezza e la stabilità delle applicazioni.
1. Cos’è JSON e perché è fondamentale
Nato come sottoinsieme di JavaScript, JSON è oggi un formato universale supportato da qualsiasi stack tecnologico (Python, Java, Go, PHP, ecc.). I suoi punti di forza principali includono:
-
- Leggerezza: una sintassi minimale priva della verbosità tipica di XML.
-
- Indipendenza: può essere generato e interpretato da qualsiasi linguaggio moderno.
-
- Gerarchia: permette di rappresentare strutture di dati complesse e nidificate.
2. Struttura di base di un documento JSON
Un file JSON si basa principalmente su due costrutti fondamentali:
- Oggetti: racchiusi tra parentesi graffe
{ }, contengono coppie chiave-valore separate da virgole (le chiavi devono essere stringhe).
-
- Array: racchiusi tra parentesi quadre
[ ], rappresentano elenchi ordinati di valori (oggetti, stringhe, numeri o booleani).
- Array: racchiusi tra parentesi quadre
Esempio pratico di payload API:
JSON
{
"nome": "ElixLab",
"attivo": true,
"ruoli": ["admin", "utente"]
}
3. Come validare il JSON nelle API moderne
Nelle API moderne, la validazione non si limita a controllare che la sintassi sia formalmente corretta (parsing), ma verifica che i dati rispettino le regole di business e i tipi attesi. Lo standard industriale per questo scopo è JSON Schema.
-
- JSON Schema: un vocabolario basato su JSON che permette di dichiarare la struttura attesa, specificando tipi di dati, campi obbligatori, pattern regex e vincoli numerici.
-
- Validazione lato server:
-
- Node.js:
Ajvè la libreria più diffusa, performante e conforme alle specifiche JSON Schema.
- Node.js:
-
- Python:
jsonschemaoffre un supporto nativo e completo per validare i dizionari Python contro uno schema.
- Python:
-
-
- Framework moderni: Molti framework (come FastAPI o NestJS) integrano la validazione automatica (tramite Pydantic o class-validator) direttamente nei punti di ingresso dell’API.