Formattatore JSON

Formatta o minimizza il JSON e vedi esattamente dove un input non valido fallisce.

Indentazione
Input
Output

L’output apparirà qui

Cosa fa questo formattatore JSON

JSON (JavaScript Object Notation) è il formato più comune per spostare dati strutturati tra programmi: risposte API, file di configurazione, righe di log e altro. È progettato per essere compatto, il che lo rende anche difficile da leggere quando gli oggetti si annidano su qualche livello o arrivano su una sola riga. Questo strumento prende qualsiasi JSON che incolli e lo riscrive in due modi: abbellito, con un’indentazione coerente perché la struttura sia evidente a colpo d’occhio, o minimizzato, privo di ogni spazio facoltativo per essere il più piccolo possibile all’invio.

Convalida anche mentre formatta. Poiché analizza il testo prima di riserializzarlo, un JSON non valido non produce mai un output fuorviante: ottieni invece la riga e la colonna esatte in cui l’analisi è fallita, per andare dritto al problema.

Abbellire vs. minimizzare: quando usare ciascuno

I due modi hanno obiettivi opposti, e la maggior parte dei flussi di lavoro li usa entrambi in fasi diverse:

  • Abbellisci quando leggi o esegui il debug: ispezionare una risposta API, confrontare due payload o rivedere un file di configurazione in una pull request. L’indentazione trasforma un muro di testo in un albero navigabile.
  • Minimizza quando spedisci: incorporare JSON nell’HTML, salvarlo in un cookie o in una cache, o inviarlo nel corpo di una richiesta dove ogni byte conta. Il JSON minimizzato è esattamente lo stesso dato, solo senza gli spazi.

Il selettore di indentazione (2 spazi, 4 spazi o tabulazione) influisce solo sull’output abbellito. Due spazi è la convenzione più diffusa in JavaScript e negli strumenti web; quattro spazi o tabulazioni vanno bene per i team che le preferiscono. Qualunque cosa scegli, il risultato resta JSON valido: l’indentazione è puramente estetica.

Leggere gli errori di convalida

Quando il JSON non è valido, lo strumento riporta la riga e la colonna del primo problema invece di un vago messaggio "non valido". I messaggi di errore dei motori differiscono tra i browser e spesso omettono una posizione, quindi la posizione viene calcolata in modo indipendente e indica un punto ragionevole da cui partire. Correggi il primo errore e ricontrolla: un singolo carattere fuori posto spesso genera più problemi apparenti.

Errori JSON comuni

JSON è più severo degli oggetti letterali di JavaScript a cui somiglia. Questi sono gli errori che traggono più spesso in inganno:

  • Virgole finali: una virgola dopo l’ultimo elemento di un oggetto o array è valida in JavaScript ma non in JSON.
  • Apici singoli: le stringhe e le chiavi JSON devono usare le virgolette doppie. 'valore' non è valido; "valore" è corretto.
  • Chiavi senza virgolette: ogni chiave di oggetto deve essere una stringa tra virgolette, quindi { name: "x" } deve diventare { "name": "x" }.
  • Commenti: JSON non ha una sintassi per i commenti. // e /* */ causeranno un errore di analisi.
  • Numeri speciali: NaN, Infinity e -Infinity non sono numeri JSON validi.
  • Virgolette sbagliate: le "virgolette tipografiche" incollate da un elaboratore di testi sembrano virgolette ma sono caratteri diversi e non verranno analizzate.

Domande frequenti

Il mio JSON viene inviato a un server?
No. L’analisi, la convalida e la formattazione avvengono tutte nel tuo browser con JavaScript. Nulla di ciò che incolli viene caricato, memorizzato o registrato, quindi è sicuro con payload sensibili.
La formattazione cambia i miei dati?
No. Abbellire e minimizzare aggiungono o rimuovono solo spazi tra i token. Chiavi, valori, numeri e struttura sono identici: cambia solo la disposizione.
Perché riordina o riformatta i miei numeri?
Lo strumento analizza il JSON in valori reali e li riserializza, quindi i numeri vengono normalizzati alla loro forma canonica (ad esempio 1e3 diventa 1000). Il valore non cambia; solo la sua rappresentazione testuale è standard.
Può gestire file JSON molto grandi?
Può gestire payload grandi, ma poiché tutto viene eseguito nel browser, i file estremamente grandi (decine di megabyte) possono essere lenti o raggiungere i limiti di memoria a seconda del dispositivo.
Conserva l’ordine delle chiavi dell’oggetto?
Sì. L’ordine delle chiavi viene mantenuto esattamente come appare nel tuo input: lo strumento non ordina le chiavi.
Qual è la differenza tra JSON e un oggetto JavaScript?
JSON è un formato di testo per lo scambio di dati; un oggetto JavaScript è un valore in memoria. JSON è più severo: richiede chiavi e stringhe tra virgolette doppie, vieta virgole finali e commenti, e ammette solo un insieme fisso di tipi di valore (stringhe, numeri, booleani, null, array e oggetti).
Posso formattare JSON5 o JSONC (JSON con commenti)?
No. Questo strumento convalida JSON standard e severo. JSON5 e JSONC aggiungono commenti e altre comodità che non fanno parte della specifica JSON, quindi verranno segnalati come errori.