Formattatore e validatore JSON

RSS

Incolla il JSON per formattarlo, minificarlo o trovare esattamente dove non è valido. Tutto avviene nel tuo browser, quindi i tuoi dati non lasciano mai il dispositivo.

Funziona al 100% nel tuo browser. Nulla di ciò che incolli viene caricato o salvato.
Input JSON
Risultato
Pronto.

Come usare il formattatore JSON

  1. Incolla il tuo JSON nella casella di input, oppure scrivilo direttamente.
  2. Scegli uno stile di indentazione: 2 spazi, 4 spazi o Tabulazioni.
  3. Clicca su Formatta per ottenere un output leggibile, oppure su Minifica per eliminare tutti gli spazi non necessari.
  4. Se l'input non è valido, il validatore mostra il messaggio di errore insieme alla riga e colonna in cui l'analisi non è riuscita.
  5. Se vuoi, attiva Ordina chiavi per mettere in ordine alfabetico le chiavi degli oggetti, oppure converti il risultato in YAML o CSV.
  6. Copia l'output e incollalo dove ti serve.

Tutto funziona nel tuo browser: il tuo JSON non viene mai caricato su un server né salvato, quindi puoi formattare in sicurezza risposte di API, file di configurazione e log che contengono dati privati.

Cos'è il JSON e perché formattarlo?

JSON (JavaScript Object Notation) è un formato di dati leggero e testuale, standardizzato nella RFC 8259 e nell'ECMA-404. È composto da soli sei tipi di valore: oggetti ({}), array ([]), stringhe, numeri, i booleani true e false, e null. È proprio questa semplicità il motivo per cui quasi tutte le API REST, molti file di configurazione e innumerevoli pipeline di log lo usano.

Alle macchine gli spazi non interessano, quindi il JSON inviato in rete viene spesso minificato su una sola riga. È efficiente, ma per una persona è quasi impossibile da leggere. La formattazione aggiunge interruzioni di riga e un'indentazione coerente, così vedi a colpo d'occhio la struttura annidata, noti un campo mancante e confronti due documenti con un diff. La minificazione fa l'opposto ed è utile quando vuoi incorporare il JSON in una richiesta o ridurre le dimensioni del payload.

Errori JSON comuni e come correggerli

Il JSON è più rigido dei letterali oggetto di JavaScript. Questi sono gli errori che il validatore rileva più spesso:

ProblemaNon validoValido
Virgola finale[1, 2, 3,][1, 2, 3]
Apici singoli{'name': 'Ada'}{"name": "Ada"}
Chiave senza virgolette{name: "Ada"}{"name": "Ada"}
Commenti// note o /* note */Rimuovili, oppure usa un campo "_comment"
Valori non JSONundefined, NaN, Infinitynull o una stringa
Zeri iniziali{"id": 007}{"id": 7} o "007"

Un tipico frammento non valido copiato da codice JavaScript ha questo aspetto:

{
  name: 'Ada Lovelace',
  born: 1815,   // year
  languages: ['English', 'French',],
}

Il JSON corretto racchiude ogni chiave e ogni stringa tra virgolette doppie, elimina il commento e rimuove entrambe le virgole finali:

{
  "name": "Ada Lovelace",
  "born": 1815,
  "languages": ["English", "French"]
}

Altre cause frequenti sono virgolette doppie non precedute dal carattere di escape o a capo veri e propri all'interno delle stringhe (usa \" e \n), e un carattere di troppo dopo la parentesi di chiusura. Se la posizione segnalata sembra sbagliata, controlla la riga appena sopra: una virgola mancante di solito viene rilevata solo quando il parser arriva al valore successivo.

Consigli e buone pratiche

  • Scegli un'indentazione e mantienila. Due spazi è la convenzione più diffusa nei progetti JavaScript; quattro spazi è comune negli strumenti Python. La coerenza conta più della scelta.
  • Ordina le chiavi prima di un diff. Gli oggetti JSON non hanno un ordine, quindi due documenti equivalenti possono apparire diversi. Ordinare le chiavi rende molto più puliti i diff del controllo di versione e i confronti.
  • Attenzione ai numeri molto grandi. JavaScript memorizza i numeri in virgola mobile a 64 bit, quindi gli interi maggiori di 9.007.199.254.740.991 (253 − 1) possono perdere precisione quando vengono analizzati in un browser. Invia gli ID grandi come stringhe.
  • Usa UTF-8. La RFC 8259 richiede UTF-8 per il JSON scambiato tra sistemi.
  • Converti quando serve. Il CSV è adatto a un array piatto di oggetti da aprire in un foglio di calcolo; lo YAML è più facile da modificare a mano. Per la conversione nei due sensi, prova il convertitore JSON ↔ YAML o il convertitore CSV ↔ JSON.
Consiglio: stai esaminando un token? Il payload di un JWT è JSON codificato in Base64url, e il decoder JWT lo formatta per te.

Domande frequenti

Il JSON ammette i commenti?

No. Né la RFC 8259 né l'ECMA-404 consentono i commenti. Alcuni strumenti accettano formati estesi come JSONC o JSON5, ma un parser standard li rifiuterà. Rimuovi i commenti prima della validazione, oppure sposta le note in un campo normale.

Perché il mio JSON non è valido se in JavaScript funziona?

I letterali oggetto di JavaScript ammettono apici singoli, chiavi senza virgolette, virgole finali, commenti e valori come undefined. Il JSON non ammette nessuna di queste cose. Nel codice usa JSON.stringify() per generare JSON valido invece di scriverlo a mano.

La formattazione modifica i miei dati?

La formattazione e la minificazione cambiano solo gli spazi tra i token; chiavi, valori e ordine degli array restano invariati. L'ordinamento delle chiavi riordina i membri degli oggetti, il che non ne cambia il significato perché gli oggetti JSON non hanno un ordine.

Qual è la differenza tra formattare e validare?

La validazione verifica che il testo sia JSON sintatticamente corretto. La formattazione riscrive il JSON valido con un'indentazione leggibile. Il formattatore valida prima di tutto, quindi non puoi formattare un documento che non viene analizzato correttamente.

Posso convertire un JSON annidato in CSV?

Il CSV è una tabella piatta, quindi funziona meglio con un array di oggetti che hanno le stesse chiavi. Oggetti e array annidati non hanno un equivalente diretto in CSV e di solito vengono appiattiti o serializzati in un'unica cella.

Aggiornato

Copiato negli appunti