JSON—JavaScript Object Notation—è il formato onnipresente basato su testo per lo scambio di dati strutturati. È standardizzato sia dall'IETF come RFC 8259 che da Ecma International come ECMA-404, che insieme definiscono la sintassi compatta e indipendente dal linguaggio che alimenta le moderne API, i log, le configurazioni e i database.
Un valore JSON è un oggetto, un array, una stringa, un numero, o uno dei letterali true, false, o null; gli oggetti associano stringhe a valori e gli array contengono valori ordinati — con spazi bianchi insignificanti consentiti intorno ai caratteri strutturali (RFC 8259, ECMA-404). Sebbene JSON sia nato da JavaScript, è indipendente dal linguaggio e supportato praticamente ovunque (MDN: JSON). Sulla rete, la codifica de facto e raccomandata è UTF-8 (RFC 8259 §8.1). Per una maggiore sicurezza di interoperabilità, il profilo I-JSON (RFC 7493) restringe le regole su codifiche e intervalli numerici.
In JavaScript, l'oggetto globale JSON espone due cavalli di battaglia:JSON.parse (con un reviver opzionale) e JSON.stringify (con replacer/spaziatura per una stampa carina), come documentato su MDN (parse, stringify).
La grammatica numerica di JSON è decimale, ma la specifica non impone precisione o distinzioni tra interi e float. Le implementazioni scelgono come rappresentarli (RFC 8259 §6). In JavaScript e Node.js, Number è a doppia precisione IEEE-754, il che significa che solo gli interi in [−(2^53−1), 2^53−1] sono esattamente sicuri — vedi Number.MAX_SAFE_INTEGER e il tipo BigInt. Questo è il motivo per cui le API pubbliche spesso inviano gli ID come stringhe e convalidano esplicitamente gli "interi sicuri".
Con la maturazione dell'uso, sono emersi standard per indirizzare e modificare JSON sul posto. JSON Pointer (RFC 6901) è una sintassi minuscola delimitata da barre per individuare i valori (ad es., /a/b/0) con regole di escape per ~ e /. JSON Patch (RFC 6902) modella gli aggiornamenti parziali come operazioni ordinate (add, remove, replace, move, copy, test) e viaggia come application/json-patch+json. Per differenze più semplici, JSON Merge Patch (RFC 7386) utilizza un'unione a forma di documento: i campi presenti vengono aggiunti/sostituiti; l'impostazione di un campo su null lo elimina. Molti framework supportano una o entrambe le forme nativamente.
JSON stesso è senza schema, ma gli ecosistemi si basano su schemi per la convalida, la documentazione e la generazione di codice. La famiglia JSON Schema 2020-12 specifica vincoli come type, properties, items e parole chiave di composizione, e si allinea con OpenAPI 3.1. Per i flussi di lavoro incentrati sulla generazione di codice, JSON Type Definition (RFC 8927) offre un linguaggio deliberatamente meno espressivo che si mappa in modo prevedibile ai sistemi di tipi tradizionali.
Il JSON classico si aspetta un testo completo per payload, il che complica lo streaming di log e le risposte di lunga durata. Due modelli aiutano:
application/json-seq.Quando la larghezza di banda o la velocità dominano, i formati "JSON binario" preservano il modello di dati di JSON scambiando la leggibilità umana con l'efficienza:
Poiché JSON è solo testo, la maggior parte dei rischi deriva da come lo si trasporta e lo si gestisce:
<script> con un callback) era una soluzione alternativa pre-CORS per le richieste cross-origin ma è pericolosa — esegue script arbitrari. Preferire CORS con risposte application/json reali (OWASP: Abuso di JSONP).JSON ha debuttato sotto RFC 4627 (2006); il tipo di media registrato è application/json, la cui specifica ora punta a RFC 8259. I parametri "charset" sulle risposte JSON sono generalmente inutili perché UTF-8 è l'impostazione predefinita su Internet pubblico.
Gli sviluppatori spesso desiderano commenti, virgole finali o stringhe tra virgolette singole nelle configurazioni. Questo è al di fuori dello standard JSON, ma JSON5 fornisce un soprainsieme ben documentato per i file modificati dall'uomo. Evitare di inviare JSON5 tramite API pubbliche a meno che non si controllino entrambe le estremità.
Il successo di JSON deriva da una superficie ridotta, un ampio supporto linguistico e un anello di standard adiacenti — puntatori, patch, schemi, sequenze — che coprono le disordinate realtà dei sistemi distribuiti. Comprendere i fondamenti (sintassi, codifica, numeri), appoggiarsi ai giusti standard adiacenti e continuerà a dare i suoi frutti su tutti gli stack e i servizi (RFC 8259, ECMA-404, RFC 6901, RFC 6902, RFC 7386, JSON Schema, JTD, RFC 7464, NDJSON).
JSON (JavaScript Object Notation) è un formato leggero di scambio dati facile da leggere e scrivere per gli umani e facile da analizzare e generare per le macchine. È ampiamente utilizzato per trasmettere dati nelle applicazioni web.
La formattazione di JSON lo rende leggibile per gli umani aggiungendo l'indentazione e le interruzioni di riga appropriate. Questo è particolarmente utile quando si lavora con dati JSON minimizzati o compressi, debugging o revisione delle risposte API.
La convalida JSON verifica se la stringa JSON è conforme alla specifica JSON. Identifica errori di sintassi come virgole mancanti, parentesi non chiuse o virgolette improprie, aiutandoti a individuare gli errori in anticipo.
La vista codice visualizza il JSON formattato come testo con evidenziazione della sintassi, simile a come appare in un editor di codice. La vista ad albero presenta JSON come una struttura interattiva e comprimibile dove è possibile espandere e comprimere oggetti e array nidificati.
Sì! Tutta la formattazione e convalida JSON avviene completamente nel tuo browser. I tuoi dati non lasciano mai il tuo computer, garantendo completa privacy e sicurezza.
Sì, puoi caricare un file JSON utilizzando il pulsante 'Apri file'. Lo strumento leggerà il file e mostrerà immediatamente l'output formattato.
Gli errori JSON comuni includono: virgole mancanti tra coppie chiave-valore, uso di virgolette singole invece di virgolette doppie per le stringhe, virgole finali, parentesi quadre o graffe non chiuse e chiavi non quotate.
Sì, usa il pulsante 'Copia' per copiare il JSON formattato negli appunti. Questo è utile per incollare il JSON pulito nel tuo codice o documentazione.