Formatta JSON

Convalida e formatta JSON. Vista ad albero interattiva. Gratis, per sempre.
JSON di input
JSON formattato
JSON di input

Privato e sicuro

Tutto accade nel tuo browser. I tuoi file non toccano mai i nostri server.

Velocissimo

Nessun caricamento, nessuna attesa. Converti nel momento in cui rilasci un file.

Realmente gratuito

Nessun account richiesto. Nessun costo nascosto. Nessun trucco sulle dimensioni dei file.

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.

Sintassi e codifica: i bit precisi che mantengono i sistemi in comunicazione

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

Numeri: ingannevolmente semplici, sorprendentemente taglienti

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

Oltre il JSON vaniglia: puntatori, patch e patch di unione

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.

Schemi e tipi: convalida e generazione

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.

Streaming e big data: linee e sequenze JSON

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:

  • Sequenze di testo JSON (RFC 7464): un flusso di testi JSON UTF-8, ciascuno preceduto dal separatore di record (U+001E) e terminato con LF; registrato come application/json-seq.
  • NDJSON / JSON Lines: ogni riga è un valore JSON autonomo — facile da seguire, comprimere con gzip e map-reduce (ndjson.org, jsonlines.org). È popolare nelle API di massa, ad es. l' API di massadi Elasticsearch.

Cugini binari: quando il testo non è abbastanza compatto

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:

  • BSON (formato nativo di MongoDB) aggiunge tipi come binario, data/ora e interi tipizzati (bsonspec.org).
  • MessagePack è compatto e senza schema, ampiamente implementato in tutte le lingue (msgpack.org).
  • CBOR standardizza un formato estensibile e compatto (con guida alla transcodifica JSON) ed è comune in contesti IoT/vincolati (RFC 8949, cbor.io).
  • Smile (dall'ecosistema Jackson) codifica JSON con riferimenti all'indietro opzionali per nomi/valori ripetuti (jackson-dataformat-smile).

Note sulla sicurezza: vecchi trucchi e soluzioni moderne

Poiché JSON è solo testo, la maggior parte dei rischi deriva da come lo si trasporta e lo si gestisce:

  • JSONP (richiesta di dati tramite <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).
  • Dirottamento di JSON: endpoint GET ingenui che restituiscono array sensibili potrebbero essere rubati tramite tag script cross-origin nei browser più vecchi; le mitigazioni includono POST con protezioni CSRF o il prefisso con un sentinella non JSON (OWASP: Dirottamento di JSON).
  • Iniezione di JSON: trattare JSON come dati, non come codice; eseguire l'escape diligentemente e convalidare gli input (OWASP: Iniezione di JSON).

Tipi di media ed eredità

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.

Consigli pratici per un JSON robusto in produzione

  • Impostare UTF-8 come predefinito ovunque; assumere UTF-8 in input e output (RFC 8259 §8.1).
  • Essere espliciti con i numeri interi grandi: se un ID può superare 2^53−1, inviarlo come una stringa e documentarlo (MDN: MAX_SAFE_INTEGER).
  • Convalidare i payload con JSON Schema 2020-12 (o JTD per stack pesanti sulla generazione di codice). Pubblicare gli schemi accanto alla documentazione dell'API (OpenAPI 3.1).
  • Applicare le patch con saggezza: usare JSON Patch per le differenze a livello di operazione e Merge Patch per semplici aggiornamenti a forma di documento.
  • Streaming su larga scala: scegliere Sequenze di testo JSON o NDJSON per log e risposte di lunga durata; rendere esplicito il tipo di media.
  • Ricorrere al binario ( BSON, MessagePack, CBOR, Smile) quando il testo è il collo di bottiglia, ma assicurarsi che entrambe le estremità siano d'accordo sui tipi.

Una breve parola sui "JSON più amichevoli"

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

Domande frequenti

Cos'è JSON?

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.

Perché devo formattare JSON?

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.

Cosa fa la convalida JSON?

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.

Qual è la differenza tra vista codice e vista ad albero?

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.

I miei dati JSON sono sicuri?

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.

Posso caricare un file JSON?

Sì, puoi caricare un file JSON utilizzando il pulsante 'Apri file'. Lo strumento leggerà il file e mostrerà immediatamente l'output formattato.

Quali sono gli errori JSON comuni?

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.

Posso copiare il JSON formattato?

Sì, usa il pulsante 'Copia' per copiare il JSON formattato negli appunti. Questo è utile per incollare il JSON pulito nel tuo codice o documentazione.