100 % locale — i tuoi dati non lasciano mai il tuo browser

Validatore JSON — riga e colonna da correggere

Controlla che un JSON venga analizzato, con riga e colonna quando non accade. Vai dritto al carattere che l’ha rotto invece di cercarlo a occhio.

Istantaneo Privato Zero cookie

Input JSON

Output Result

Che cosa dice il rapporto

Per un documento che si analizza: la forma del valore radice e la dimensione.

✓ Valid JSON

Root: object (4 keys)
Size: 312 characters, 18 lines

Altrimenti: il messaggio del parser, con la posizione tradotta in riga e colonna — una volta, non due.

Qualunque valore JSON è un documento

42 è JSON valido. Anche "ciao", anche true, anche null.

È così dalla RFC 7159 (2014); la RFC 4627 originale pretendeva un oggetto o un array al livello superiore. Alcuni parser più vecchi applicano ancora la vecchia regola, e conviene ricordarlo il giorno in cui un validatore dice sì e la tua libreria dice no.

Chiavi doppie: un avviso, non un errore

{ "port": 8080, "port": 3000 }

Il rapporto dichiara il documento valido e aggiunge una nota con la posizione del secondo port.

È una differenza voluta rispetto al formattatore JSON, che rifiuta lo stesso input. La RFC 8259 dice che i nomi di un oggetto dovrebbero essere unici — un «dovrebbero», non un «devono» — quindi il documento è davvero valido, e un validatore descrive ciò che vede.

Un formattatore deve produrre qualcosa, e produrre vuol dire decidere quale dei due valori sopravvive. I parser decidono diversamente: la maggior parte tiene l’ultimo, alcuni il primo, altri rifiutano. Quella scelta è tua, non di uno strumento: il formattatore si ferma, il validatore avvisa.

Che cosa «valido» non vuol dire

Non vuol dire che il file dica ciò che credi.

Un campo obbligatorio assente, una stringa dove va un numero, una data scritta all’americana, un URL con un refuso: tutto ciò si analizza perfettamente. Verificarlo richiede uno schema — JSON Schema, e un validatore che lo legga — cioè una domanda diversa da quella a cui questa pagina risponde.

Privato per progettazione

Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.

Domande frequenti

Perché una chiave doppia è un avviso qui e un errore nel formattatore?
Perché i due strumenti hanno mestieri diversi. La RFC 8259 dice che i nomi *dovrebbero* essere unici — un «dovrebbero» — quindi un documento che ne ripete uno è ancora JSON valido, e il mestiere di un validatore è descrivere ciò che vede. Un formattatore deve produrre un’uscita, cioè scegliere quale valore sopravvive, e quella scelta non gli spetta.
42 è JSON valido?
Sì. Dalla RFC 7159 qualunque valore JSON è un documento completo: un numero, una stringa, `true`, `null`. La vecchia RFC 4627 pretendeva in cima un oggetto o un array, ed è per questo che certi parser datati rifiutano ancora `42` — utile saperlo il giorno in cui un validatore dice sì e la tua libreria dice no.
Dice valido, ma il mio programma rifiuta il file. Perché?
Perché valido significa che la sintassi si analizza, non che il contenuto sia quello atteso. Un campo obbligatorio assente, un numero dove era dichiarata una stringa, una data nel formato sbagliato: nulla di ciò è sintassi. Verificarlo richiede uno schema, cioè un altro strumento e un’altra domanda.

Convertitori correlati