Visualizzatore di alberi JSON
Incolla i dati JSON qui sotto e visualizzali come albero interattivo e ripiegabile con valori a colori.
Come funziona
- Incolla il tuo JSON: rilascia qualsiasi stringa JSON, oggetto, array, struttura annidata, nel campo di input.
- Esplora l'albero: il JSON viene mostrato come albero interattivo e ripiegabile. Clicca su un nodo per espandere o comprimere i suoi figli.
- Naviga e ispeziona: trova chiavi o valori specifici espandendo i rami. I dati profondamente annidati diventano facili da leggere a colpo d'occhio.
Perché usare il visualizzatore ad albero JSON?
Il JSON grezzo proveniente da API, file di configurazione e database è notoriamente difficile da leggere quando contiene strutture profondamente annidate. Un visualizzatore ad albero JSON trasforma il testo piatto in una mappa visiva gerarchica dove vedi all'istante la forma dei dati, individui le chiavi mancanti, segui i percorsi annidati e capisci la struttura senza dover analizzare mentalmente parentesi e virgole. È uno strumento essenziale per il debug di API, l'esplorazione di dati e la comprensione di schemi.
Funzionalità
- Albero interattivo: espandi e comprimi qualsiasi ramo per concentrarti sulla parte di dati che ti interessa.
- Colorazione sintattica: chiavi, stringhe, numeri, booleani e valori null sono colorati per un'individuazione rapida.
- Supporto per annidamenti profondi: gestisce oggetti e array annidati in modo arbitrario, indipendentemente dalla dimensione.
- Rilevamento errori: il JSON non valido è segnalato con un messaggio di errore chiaro prima del rendering.
- Basato su browser: nessun invio a un server, i tuoi dati JSON restano interamente nel tuo browser.
Domande frequenti
C'è un limite di dimensione per l'input JSON?
Lo strumento non impone un limite rigido. Le prestazioni dipendono dal tuo browser e dal tuo dispositivo. File JSON molto grandi (diversi MB) possono visualizzarsi lentamente, ma le risposte API e i file di configurazione abituali funzionano all'istante.
Posso modificare il JSON nella vista ad albero?
Questo strumento è incentrato sulla visualizzazione e l'esplorazione della struttura JSON. Per modificare il JSON, usa lo strumento Formattatore JSON, che propone un editor completo accanto all'output formattato.
Supporta il JSON con commenti (JSONC)?
Il JSON standard non consente i commenti, e la maggior parte dei parser (incluso questo strumento) li segnala come errori. Rimuovi i commenti prima di incollare, o usa un editor compatibile con JSONC per il JSON commentato.
JSON, il formato di dati che ha vinto
Douglas Crockford ha pubblicato JSON su json.org nel 2001 come alternativa leggera a XML, prendendo la sintassi direttamente dai letterali di oggetto di JavaScript. Il formato è stato standardizzato per la prima volta come Internet-Draft IETF nella RFC 4627 (luglio 2006), poi rivisto come RFC 7159 (marzo 2014), e infine stabilito nella RFC 8259 (dicembre 2017), che è lo standard attuale e viene mantenuto allineato con ECMA-404 (1ª edizione ottobre 2013, 2ª edizione dicembre 2017). La RFC 8259 ha aggiunto un requisito significativo: la codifica a livello di rete deve essere UTF-8. Due specifiche complementari completano l'ecosistema: RFC 6901 «JSON Pointer» (aprile 2013) definisce la sintassi /store/book/0/title per indirizzare nodi all'interno di un documento, e RFC 6902 «JSON Patch» definisce un documento JSON che descrive modifiche da applicare a un altro documento JSON. JSON Schema (bozza IETF attuale 2020-12) aggiunge la validazione. Tutto il resto costruito sopra, JSONC per i commenti nei file di configurazione, JSON5 per la sintassi rilassata, NDJSON per lo streaming, è venuto dopo.
I sei tipi di valore JSON (e cosa manca)
La RFC 8259 §3 definisce esattamente sei tipi di valore. Non c'è nient'altro.
- oggetto: insieme non ordinato di coppie nome-valore delimitate da parentesi graffe. Le chiavi sono sempre stringhe.
- array: elenco ordinato di valori delimitati da parentesi quadre. Può contenere tipi misti.
- stringa: caratteri Unicode tra virgolette doppie. Le virgolette singole non sono JSON legale.
- numero: virgola mobile a doppia precisione IEEE 754. La spec non garantisce precisione arbitraria; numeri oltre
Number.MAX_SAFE_INTEGER= 2⁵³ − 1 = 9 007 199 254 740 991 perdono precisione quando vengono parsati. true/false: letterali booleani, minuscoli, senza virgolette.null: il letterale null, minuscolo, senza virgolette. Una chiave con valorenullè diversa da una chiave assente.
Quello che JSON non ha: un tipo data (la convenzione è una stringa ISO 8601 con fuso orario), commenti (usa un campo di metadati separato), virgole finali, stringhe tra virgolette singole, numeri esadecimali, undefined, NaN o Infinity. Qualsiasi di questi farà sì che JSON.parse lanci SyntaxError.
JSON stretto, JSONC, JSON5: chi è chi
JSON stretto (RFC 8259) è ciò che questo viewer accetta: niente commenti, niente virgole finali, chiavi tra virgolette doppie, stringhe tra virgolette doppie. JSONC è una convenzione Microsoft spedita in VS Code che permette commenti di riga // e commenti di blocco /* ... */ mantenendo tutto il resto stretto; lo vedi in tsconfig.json, .vscode/settings.json, e il pacchetto npm jsonc-parser. JSON5 (2017, https://json5.org) è un sovrainsieme che aggiunge stringhe tra virgolette singole, chiavi senza virgolette, virgole finali, numeri esadecimali, valori speciali IEEE 754 (NaN, Infinity), e commenti sia di riga che di blocco; il pacchetto npm json5 ha circa 10 milioni di download settimanali. NDJSON / JSON Lines (https://jsonlines.org) è una variante di streaming dove ogni riga è un documento JSON indipendente, utilizzato da shipper di log e pipeline di ingestione di big data. Rimuovi i commenti e le virgole finali prima di incollare se la tua fonte è JSONC o JSON5.
Dove un viewer di alberi guadagna davvero il suo stipendio
- Ispezione delle risposte API. Stripe, GitHub, Slack, Twilio: ogni API moderna restituisce JSON annidato. Incollare in un viewer di albero rende la forma ovvia.
- File di configurazione.
package.json,tsconfig.json,composer.json,kubeconfig, e la lunga coda di configurazioni JSON dei provider cloud diventano tutti più facili da controllare come albero. - Ispezione di esportazione del database. Output MongoDB
find(), righe PostgreSQLrow_to_json, liste di hit ElasticSearch. - Scoperta dello schema. Quando un'API non ha documentazione, il viewer di albero è la documentazione.
- Preparazione di diff. Prima di eseguire
json-diffojqtra due file, ispeziona ciascuno in un viewer per individuare manualmente differenze ovvie. - Ispezione del payload webhook. Stripe, GitHub, SendGrid e servizi simili inviano tutti webhook JSON. Incollare il payload in un viewer è il modo più rapido per verificare cosa riceverà il tuo endpoint.
- Creazione di dati di esempio. Costruisci una fixture di test digitando JSON e guarda l'albero aggiornarsi in modo incrementale; cattura parentesi mancanti prima di salvare il file.
Errori comuni nel lavorare con JSON
- Virgole finali.
{"a": 1,}è JavaScript legale ma JSON illegale.JSON.parselanciaSyntaxError: Unexpected token '}'. Rimuovile o passa a JSON5. - Commenti.
// cosìo/* così */sono validi in JavaScript e JSONC ma non in JSON stretto. - Perdita di precisione su interi grandi. Gli ID di Twitter e Stripe possono superare 2⁵³;
JSON.parse("9007199254740993")restituisce9007199254740992. Riceverli come stringhe se la precisione conta. - Confondere
nullcon assente.{"foo": null}hafoodefinito come null;{}hafooindefinito. La distinzione conta per i contratti API e la gestione NULL del database. - Chiavi duplicate. La RFC 8259 dice che il comportamento è indefinito; in pratica ogni motore JS mantiene l'ultimo valore.
{"a": 1, "a": 2}parsa come{a: 2}. - Riferimenti circolari.
JSON.stringifylanciaTypeError: Converting circular structure to JSON. Appiattisci i cicli, usa un replacer, o usa una libreria comeflatted. - Stringhe di data senza fuso orario.
"2026-05-12"è ambiguo;"2026-05-12T18:30:00Z"è ISO 8601 inequivocabile in UTC. Includi sempre l'offset.
Altre domande frequenti
Quanto grande un file JSON può gestire questo viewer?
Parsare 1 MB con JSON.parse impiega circa 10 ms in V8. Renderizzare 100.000 nodi DOM collassati può congelare il browser per diversi secondi. In pratica, questo viewer è comodo fino a circa 5 MB; oltre, aspettati un ritardo notevole durante il rendering. Per documenti più grandi, usa un parser streaming come stream-json in un Web Worker, o pagina l'input in chunk.
Perché il mio intero grande torna sbagliato?
I numeri JavaScript sono float a doppia precisione IEEE 754. Gli interi fino a 2⁵³ − 1 = 9 007 199 254 740 991 sopravvivono a un round-trip esattamente; oltre, la precisione è persa. Gli ID snowflake di Twitter (64-bit), gli ID cliente Stripe, gli ID di transazione blockchain e molte chiavi surrogate di database superano questo limite. JSON.parse tronca silenziosamente. La soluzione è ricevere gli ID come stringhe (la maggior parte delle API moderne lo fa) o parsare con una libreria che supporta BigInt.
Cos'è JSON Pointer, e dove lo userei?
La RFC 6901 (aprile 2013) definisce una sintassi di percorso per indirizzare nodi all'interno di un documento JSON: /store/book/0/title seleziona il titolo del primo libro nell'array store. JSON Pointer è il fondamento di JSON Patch (RFC 6902), che esprime delta del documento come array di coppie pointer-e-operazione. Il server API Kubernetes usa JSON Patch per aggiornamenti incrementali; così come l'API REST di GitHub e molti altri sistemi.
NDJSON / JSON Lines funziona in questo viewer?
No. NDJSON è un valore JSON indipendente per riga, senza array di chiusura. JSON.parse sull'intero file lancia perché la seconda riga inizia dove finisce il primo oggetto. Avvolgi l'intero contenuto in [ e ] e sostituisci ogni nuova riga tra oggetti con una virgola, o incolla una riga alla volta, o usa un viewer NDJSON dedicato.
Il mio JSON viene inviato da qualche parte?
No. JSON.parse gira nel motore JavaScript del tuo browser, l'albero è renderizzato come nodi DOM localmente, e nessuna copia dei tuoi dati viene inviata sulla rete. Questo è sicuro per le risposte API con segreti, dati cliente o PII. Apri la scheda Rete in DevTools e incolla un campione: vedrai zero richieste in uscita durante il parsing e il rendering.