Formattatore e validatore JSON gratuito online
Incolla il tuo JSON per formattarlo, minimizzarlo o convalidarlo istantaneamente. Tutta l'elaborazione avviene nel tuo browser.
Cos'è JSON?
JSON (JavaScript Object Notation) è un formato di dati leggero utilizzato per scambiare dati tra server e applicazioni web. È leggibile dagli umani e facile da analizzare per le macchine. Questo strumento ti aiuta a formattare, minimizzare e convalidare i dati JSON, perfetto per sviluppatori che effettuano il debug di risposte API, file di configurazione e strutture dati.
Cosa fa davvero "Formatta JSON"
JSON è insensibile agli spazi a livello di specifica, un parser legge {"name":"Alice","age":30} in modo identico alla forma multi-riga indentata. La differenza visibile è puramente per i lettori umani. La formattazione (chiamata anche "pretty-printing" o "abbellimento") inserisce indentazione tra livelli annidati, mette ogni proprietà sulla propria riga e aggiunge uno spazio bianco dopo i due punti tra chiave e valore. La minificazione fa l'inverso: toglie ogni byte di spazio bianco eccetto all'interno dei letterali stringa. Le risposte HTTP di produzione sono tipicamente minificate per risparmiare banda (gzip e Brotli al CDN edge gestiscono il resto); durante lo sviluppo la versione formattata è quella che leggi. Le convenzioni di formattazione standard: 2 spazi per livello di indentazione (il default web moderno, il default di Prettier, la norma dell'ecosistema JavaScript), 4 spazi per codebase che seguono convenzioni influenzate da Python, o 1 tab per progetti che preferiscono l'indentazione con tab. JSON.stringify() in JavaScript prende un secondo argomento intero o stringa che controlla esattamente questo, JSON.stringify(data, null, 2) produce output indentato con 2 spazi. Questo strumento espone le stesse tre opzioni.
JSON è rigoroso, le regole che fanno inciampare
La grammatica di JSON è notoriamente intransigente. Le chiavi degli oggetti devono essere tra doppi apici (gli apici singoli non sono ammessi). I valori stringa devono usare doppi apici. Niente virgole finali dopo l'ultima proprietà di un oggetto o l'ultimo elemento di un array, una fonte frequente di sorpresa per chi sviluppa in JavaScript perché JS stesso accetta le virgole finali. Nessun commento, a differenza di YAML o JavaScript, JSON non ha sintassi per i commenti. Nessun valore undefined, JSON ha solo null; cercare di codificare in JSON l'undefined di JavaScript fa cadere completamente la proprietà. I numeri devono essere in forma decimale JSON, niente zeri iniziali (007 illegale), niente esadecimale (0x7F illegale), niente Infinity né NaN. Le stringhe devono essere UTF-8 valide, la maggior parte dei parser tollera problemi di coppie surrogate UTF-16 ma la specifica richiede Unicode ben formato. Le chiavi duplicate sono tecnicamente valide per la specifica ma producono comportamento indefinito nella maggior parte dei parser (di solito vince l'ultimo valore). Diverse varianti di JSON allentano queste regole: JSON5 (Aseem Kishore, 2012) ammette virgole finali, apici singoli, commenti e altri rilassamenti ergonomici; JSONC (usato dal tsconfig.json di VS Code e simili) è JSON con commenti su riga in stile C ammessi; HJSON punta alla user-friendliness con chiavi tra apici opzionali. Nessuno è JSON propriamente detto, hanno bisogno dei propri parser e la maggior parte degli strumenti di produzione si aspetta JSON rigoroso secondo RFC 8259.
Dove il JSON formattato si guadagna il pane
- Leggere risposte API. Un endpoint REST restituisce JSON minificato in produzione. Per ispezionarlo durante il debug, incollalo qui, vedi la struttura con indentazione corretta e colorazione delle chiavi, trova il bug.
- Leggere righe di log strutturate. Gli stack di logging moderni (Datadog, Splunk, Elasticsearch, CloudWatch) emettono un oggetto JSON per riga di log, tutti su una sola riga. Per leggere una voce di log complessa rapidamente, formattala qui.
- Rivedere file di configurazione.
package.json,tsconfig.json,composer.json, policy IAM AWS, manifest Kubernetes JSON, sono tutti più facili da rivedere quando formattati in modo coerente. L'opzione "Sort Keys" produce un ordinamento alfabetico canonico utile per fare diff di due config. - Confrontare due documenti JSON. Formatta entrambi con indentazione coerente e ordinamento delle chiavi, poi fai il diff dei risultati nel tuo strumento di diff preferito. Senza normalizzazione, JSON semanticamente identici che differiscono solo per spazi bianchi o ordine delle chiavi producono diff rumorosi.
- Validare un file JSON modificato a mano. Incolla, clicca Valida, se c'è un errore di sintassi, la posizione e il messaggio ti dicono esattamente dove guardare. Più veloce che far passare il file attraverso una build che fallisce con "unexpected token at line 47".
- Trovare il percorso a un valore profondamente annidato. Apri la vista ad albero, clicca sul valore che ti interessa, vedi la sua espressione JSONPath, utile per scrivere query
jq, asserzioni JSONPath nei test o per accedere al campo nel codice. - Minificazione pre-deploy. Una config JSON che viaggia in un bundle del browser, una stringa JSON-in-JS incorporata o qualsiasi contesto in cui i byte contano, la minificazione rimuove tutti gli spazi di formattazione.
JSON nell'ecosistema strumenti più ampio
Per i flussi di lavoro a riga di comando, jq (Stephen Dolan, primo rilascio 2012) è il processore JSON canonico, un piccolo binario collegato staticamente che gestisce formattazione (jq .), filtraggio (jq '.users[] | .email'), trasformazione e query complesse con il proprio linguaggio di espressioni conciso. La libreria standard di Python include python -m json.tool per il pretty-printing una tantum. Il JSON.stringify(obj, null, 2) integrato di JavaScript è il formattatore più veloce in browser/Node. JSON Schema (draft attuale 2020-12, edito da Henry Andrews, Austin Wright, Greg Dennis e altri) fornisce un vocabolario per dichiarare quale forma deve avere un documento JSON, vincoli di tipo, proprietà richieste, validatori di formato, logica condizionale, ed è lo standard per la validazione dei contratti API, le specifiche OpenAPI 3.x, la validazione di configurazione e la generazione di form basata su JSON. JSONPath (Stefan Goessner, 2007, ora standardizzato come RFC 9535 nel febbraio 2024) è il linguaggio di query simile a XPath per JSON, usato dal sottoinsieme più semplice di jq e da strumenti come Postman, jsonpath-ng (Python) e l'AWS CLI. JSON-LD (W3C Recommendation, versione attuale 1.1 pubblicata nel luglio 2020) estende JSON con convenzioni semantiche-web di linked data ed è il formato che Google raccomanda per il markup di structured data sulle pagine web. JSON Patch (RFC 6902) e JSON Merge Patch (RFC 7396) definiscono formati standardizzati di diff/patch per documenti JSON.
Vista ad albero, perché conta
Un documento JSON pretty-printed anche di dimensioni moderate (qualche centinaio di righe) è difficile da navigare come testo piatto. La vista ad albero in questo strumento collassa ogni oggetto e array in un nodo espandibile, ti permette di cliccare per vedere solo i livelli che ti interessano e mostra l'espressione JSONPath per qualsiasi nodo su cui clicchi. La funzione del path-on-click è il ponte pratico tra "posso vedere il valore che voglio nel documento" e "posso scrivere codice che accede a quel valore", incolla il path in jq, in una query JSONPath, nella notazione a parentesi quadre di JavaScript, in un'asserzione di test Postman. Per risposte API profondamente annidate (Stripe, Shopify, Salesforce, qualsiasi cosa con modelli di dominio ricchi), vista ad albero più copia del path è il flusso che porta da "vedo il campo" a "ho l'espressione di accesso" in due click.
Privacy: validazione solo nel browser
Il JSON incollato in un formattatore è frequentemente dato di produzione reale, risposte API con identificatori utente, token di sessione, ID di entità interne, valori di configurazione che includono URL di endpoint e feature flag. I formattatori JSON lato server prendono una copia di ogni input nei loro log. Questo strumento analizza il tuo JSON con il JSON.parse() integrato del browser, attraversa la struttura risultante in JavaScript e la riemette come stringa, tutto dentro la tua scheda del browser. Verifica nel pannello Network di DevTools mentre clicchi Formatta (nessuna richiesta parte) o metti la pagina offline (modalità aereo) dopo il caricamento e il formattatore continua a funzionare. Sicuro per risposte API di produzione, configurazioni interne, JSON contenente token o chiavi o qualsiasi documento che non vorresti veder copiato sul disco rigido di uno sconosciuto.
Domande frequenti
Perché il mio JSON non supera la convalida?
I problemi comuni includono virgole finali dopo l'ultimo elemento, apici singoli invece di virgolette doppie, chiavi senza virgolette e parentesi mancanti. JSON è rigoroso, le chiavi e i valori stringa devono usare le virgolette doppie.
Qual è la differenza tra formattare e minimizzare?
La formattazione aggiunge indentazione e nuove righe in modo che gli umani possano leggerlo. La minimizzazione rimuove tutti gli spazi bianchi non necessari per ridurre la dimensione del file per l'uso in produzione. Il contenuto dei dati è identico in entrambi i casi.
Esiste un limite di dimensione?
Non c'è un limite rigoroso. Poiché lo strumento funziona nel tuo browser, file JSON molto grandi (10+ MB) potrebbero essere lenti su dispositivi più vecchi. Per le tipiche risposte API e file di configurazione, funziona istantaneamente.
Cosa fa "Sort Keys" e quando dovrei usarlo?
Sort Keys riordina alfabeticamente le chiavi di ogni oggetto in modo ricorsivo. La semantica dei dati è invariata, l'ordine delle chiavi degli oggetti JSON è tecnicamente indefinito secondo la specifica, anche se la maggior parte dei parser preserva l'ordine di inserimento, ma l'output diventa canonico. Utile per fare diff di due documenti JSON che dovrebbero essere semanticamente equivalenti (senza ordinamento, le differenze nell'ordine delle chiavi producono diff rumorosi) e per produrre output di build riproducibili (gli stessi dati dovrebbero sempre serializzarsi a JSON byte-identico indipendentemente da come sono stati costruiti in memoria).
I miei documenti JSON vengono caricati?
No. Tutto il parsing, la validazione, la formattazione, l'ordinamento e il rendering ad albero avviene nel tuo browser tramite JSON.parse() e JavaScript. Il JSON incollato non attraversa mai la rete. Verifica nel pannello Network di DevTools mentre clicchi Formatta (nessuna richiesta parte) o metti la pagina offline (modalità aereo) dopo il caricamento. Sicuro per risposte API proprietarie, configurazione interna, JSON contenente token o dati di sessione o qualsiasi cosa coperta da NDA.
Strumenti correlati
Codificatore e decodificatore Base64 gratuito online
Codifica testo in Base64 o decodifica Base64 in testo. Supporta la conversione da file a Base64. Gratuito, senza registrazione, viene eseguito nel tuo browser.
Anteprima Markdown gratuita online
Scrivi Markdown a sinistra e visualizza l'anteprima renderizzata dal vivo a destra.
Contatore di parole e caratteri gratuito online
Incolla o digita il tuo testo di seguito per visualizzare istantaneamente il conteggio delle parole, il conteggio dei caratteri, le frasi.