Ogni moderna applicazione web, infrastruttura cloud e backend mobile si affida a una lingua franca digitale per scambiare informazioni strutturate. Questo formato universale è JSON (JavaScript Object Notation).
1. Introduzione e Storia
JSON è stato reso celebre nei primi anni 2000 da Douglas Crockford come alternativa snella ed elegante alla pesantezza di XML. Pur ispirandosi alla sintassi letterale degli oggetti in JavaScript, JSON è completamente indipendente dal linguaggio ed è regolato dagli standard internazionali RFC 8259 ed ECMA-404.
2. I 6 Tipi di Dato Fondamentali
JSON definisce rigorosamente solo sei tipi di dati. Qualsiasi payload contenente tipi al di fuori di questo elenco è considerato non valido:
{ "userId": 101, "role": "admin" }[ "production", "staging", "dev" ]"Testo Unicode racchiuso tra doppi apici"42, 3.14159, -17, 1.2e5true, falsenull3. Regole Rigide di Sintassi e Grammatica
A differenza dei motori tolleranti di JavaScript, i parser JSON impongono una sintassi rigorosa:
- Doppi Apici Obbligatori: Le chiavi degli oggetti e le stringhe devono sempre usare doppi apici (
"chiave"). I singoli apici ('chiave') causano un errore di sintassi immediato. - Nessuna Virgola Finale (Trailing Comma): Le virgole servono esclusivamente come separatori di elementi. Una virgola dopo l’ultimo elemento blocca il parsing.
- Nessun Commento Consentito: La specifica ufficiale JSON non supporta commenti tramite
//o/* */.
4. Parsing con Abstract Syntax Tree (AST)
Quando un browser esegue JSON.parse(), uno scanner lessicale deterministico converte i caratteri grezzi in un Abstract Syntax Tree (AST) in memoria. Il parser verifica la corrispondenza delle parentesi e le coppie surrogate UTF-8 prima di produrre gli oggetti nativi.
5. Confronto: JSON vs XML e YAML
Se XML eccelle nella gestione di documenti con schemi formali (XSD) e YAML è preferito per i file di configurazione DevOps, JSON rimane lo standard incontrastato per le API HTTP ad alto throughput grazie al ridotto overhead di serializzazione e al parsing nativo istantaneo nei browser.
6. Sicurezza e Best Practice
Non usare mai eval() per parsare input JSON non attendibili. Utilizza sempre il metodo nativo del browser JSON.parse(), che garantisce una deserializzazione sicura senza rischio di esecuzione arbitraria di codice.