Informazioni su questo strumento
La formattazione JSON (spesso chiamata nice-printing o abbellimento) accetta JSON compatto e aggiunge spazi bianchi (interruzioni di riga, rientro, spaziatura coerente) per rendere la struttura visibile ai lettori umani. Compact JSON è il formato giusto per la trasmissione: riduce al minimo i byte sulla rete e sullo spazio di archiviazione. JSON formattato è il formato giusto per l'ispezione: la gerarchia rientrata rivela a colpo d'occhio la struttura nidificata, rende le differenze significative e consente agli sviluppatori di individuare campi specifici senza analizzare mentalmente il documento.
Questo formattatore analizza l'input come JSON per confermare che sia valido, quindi lo riemette con un rientro coerente. Un input non valido produce un errore che indica il problema di sintassi. L'input valido viene riformattato indipendentemente da quanto compatta o disordinata fosse la fonte. Il rientro predefinito è di due spazi, corrispondenti alla convenzione JavaScript più comune.
Il formattatore offre anche la minimizzazione (l'operazione inversa), che elimina tutti gli spazi bianchi non necessari per produrre il JSON valido più piccolo. L'output minimizzato è utile per la trasmissione della produzione; l'output formattato è utile per lo sviluppo e il debug.
Perché formattare JSON
Leggere JSON profondamente annidati senza rientro è essenzialmente impossibile: la struttura è tecnicamente presente ma invisibile. Anche JSON moderatamente complesso beneficia enormemente della formattazione. I revisori del codice, i debugger delle API e chiunque cerchi di comprendere un payload di dati necessitano di JSON formattato per vedere cosa c'è effettivamente.
Anche la formattazione rileva gli errori. Se JSON non riesce ad analizzare durante la formattazione, il messaggio di errore identifica la posizione esatta del problema di sintassi, spesso una virgola mancante, una chiave senza virgolette o una virgola finale vagante che il sistema di produzione non ha contrassegnato. Un formattatore è il validatore JSON più semplice disponibile.
Dettagli tecnici
Il formattatore utilizza JSON.parse e JSON.stringify, la stessa coppia fornita da ogni runtime JavaScript. L'analisi segue RFC 8259 (l'attuale specifica JSON), accettando JSON rigoroso ma rifiutando valori letterali oggetto JavaScript, commenti, virgole finali e altre estensioni JSON5.
JSON.stringify accetta un argomento di rientro: un numero (spazi) o una stringa (carattere di rientro personalizzato, come una tabulazione). Il formattatore espone entrambe le opzioni. L'output viene ordinato in ordine di origine per gli oggetti (poiché ES2015 ha conservato l'ordine di inserimento delle proprietà su tutti i principali motori).
Casi limite: numeri grandi oltre Number.MAX_SAFE_INTEGER perdono precisione durante l'analisi (una limitazione JSON nota; utilizzare valori stringa per ID che superano 2 ^ 53). Gli escape Unicode nelle stringhe vengono conservati letteralmente. Gli spazi bianchi finali vengono rimossi da ogni riga.
Domande frequenti
- Quali tipi di errori JSON rileva questo strumento?
- Lo strumento rileva virgole mancanti, parentesi graffe non corrispondenti, escape di stringhe non valide, virgole finali, stringhe con virgolette singole e altre violazioni della sintassi secondo la specifica JSON RFC 8259.
- Può gestire file JSON molto grandi?
- SÌ. Il formattatore elabora JSON nel tuo browser utilizzando l'analisi JavaScript nativa, quindi gestisce in modo efficiente file fino a diversi megabyte. Per file estremamente grandi (50 MB+), il tempo di elaborazione dipende dal dispositivo.
- Supporta JSON con commenti (JSONC)?
- JSON standard non consente commenti. Se il tuo input contiene commenti, il validatore li contrassegnerà come errori. Per il supporto JSONC, rimuovere i commenti prima della formattazione.
- La formattazione modificherà i valori dei miei dati?
- No. La formattazione regola solo gli spazi bianchi e il rientro: i tipi di dati, i valori e la struttura rimangono esattamente gli stessi.
- Sono supportate le funzionalità JSON5 (commenti, virgole finali)?
- No. Il formattatore segue rigorosamente RFC 8259. Le funzionalità JSON5 causano errori di analisi. Per utilizzare JSON5, converti prima in JSON standard utilizzando un parser JSON5.
- Il mio JSON è caricato su un server?
- No. L'analisi e la formattazione avvengono interamente nel tuo browser utilizzando le funzioni JSON integrate.
- I grandi numeri perderanno precisione?
- JavaScript rappresenta i numeri come numeri in virgola mobile a 64 bit, quindi gli interi superiori a 2^53 (circa 9 quadrilioni) perdono precisione. Per gli ID o altri valori interi di grandi dimensioni, archiviali come stringhe in JSON.
- Posso ordinare le chiavi in ordine alfabetico?
- JSON.stringify non ordina le chiavi. Utilizzare un passaggio di ordinamento separato (o un formattatore con supporto per l'ordinamento) per mettere in ordine alfabetico le chiavi prima della stringatura.