Curious TechieDev Toolbox
Tutte le Guide/Formati Dati8 min read

Cos’è il JSON? Guida Tecnica allo Standard RFC 8259

Tipi di dato, regole sintattiche, alberi di parsing AST, serializzazione e correzione degli errori di parsing.

Punti Chiave
  • Il JSON è un formato leggero per lo scambio di dati standardizzato da RFC 8259.
  • Supporta 6 tipi di dato: String, Number, Boolean, Null, Object e Array.
  • Le chiavi degli oggetti richiedono obbligatoriamente virgolette doppie ("chiave").
  • Le virgole finali di chiusura non sono ammesse dallo standard ufficiale.
  • I numeri in JSON non distinguono formalmente tra interi e decimali.

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:

Oggetto (Object):{ "userId": 101, "role": "admin" }
Array:[ "production", "staging", "dev" ]
Stringa (String):"Testo Unicode racchiuso tra doppi apici"
Numero (Number):42, 3.14159, -17, 1.2e5
Booleano (Boolean):true, false
Null:null

3. 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.