Validator JSON
Incolla qualsiasi documento JSON e verifica se viene analizzato correttamente secondo l’RFC 8259. L’input non valido restituisce il problema esatto, virgola finale dopo l’ultimo elemento dell’array, chiave non racchiusa tra virgolette, stringa non terminata, virgolette singole dove JSON richiede doppie, sequenze di escape errate, oltre alla riga e alla colonna in cui l’analizzatore ha rinunciato. Utile quando si esegue il debug di una risposta API, di un file di configurazione, di un package.json modificato a mano da un compagno di squadra o dell’output di un generatore di codice.
Come funziona la validazione JSON
-
1
Incolla il tuo JSON
Inserisci un payload, un file di configurazione o una risposta API. Gli spazi bianchi vanno bene; le tabulazioni e i commenti no (il JSON puro non ha commenti).
-
2
Analizza con un analizzatore RFC 8259 rigoroso
Il validatore rifiuta tutto ciò che la specifica vieta: virgole finali, chiavi non racchiuse tra virgolette, virgolette singole, `undefined`, numeri esadecimali.
-
3
Leggi l'errore
Se fallisce, ricevi il messaggio dell'analizzatore più una posizione approssimativa, sufficiente per navigare direttamente al carattere.
-
4
Correggi e rivalida
Correggi il problema, incolla di nuovo e conferma che il documento sia valido prima di impegnarti o inviare.
Cosa consente JSON rigoroso, e cosa no
Esistono molti formati “quasi JSON” (JSON5, JSONC, ibridi simili a YAML). La specifica JSON stessa è piccola e rigorosa; questo validatore ti dice se il tuo documento supera un analizzatore rigoroso, che è ciò che la maggior parte dei sistemi downstream esegue effettivamente.
Regole che colpiscono la maggior parte delle persone
| Regola | Valido | Non valido |
|---|---|---|
| Le chiavi devono essere stringhe racchiuse tra virgolette doppie | {"a": 1} |
{a: 1} |
| Le stringhe usano solo virgolette doppie | "hello" |
'hello' |
| Nessuna virgola finale | [1, 2, 3] |
[1, 2, 3,] |
| Nessun commento | (nessuno) | // commento o /* */ |
Numeri: nessun + iniziale, nessun .5 |
0.5 |
+1, .5 |
| Solo letterali riservati | true, false, null |
undefined, NaN |
| Codifica UTF-8 | Stringhe Unicode | Sequenze di byte non valide |
Errori comuni e cosa significano
- “Token
}inaspettato”, hai una virgola finale prima della parentesi graffa di chiusura. - “Nome della proprietà previsto”, la chiave non è racchiusa tra virgolette o hai dimenticato le virgolette attorno alla chiave di apertura.
- “Fine dell’input inaspettata”, una parentesi graffa
{o[di apertura non è chiusa; conta le parentesi. - “Carattere di controllo errato”, una tabulazione, un’interruzione di riga o un altro byte di controllo all’interno di una stringa letterale. Escape come
\t,\n, ecc. - “Chiave duplicata”, non è effettivamente un errore secondo la specifica JSON (la specifica dice che DOVREBBE essere unica), ma molti validatori avvertono. Il validatore lo segnala come un avviso, non come un errore grave.
Se hai bisogno di formati più permissivi
- JSON5 consente virgole finali, commenti e virgolette singole. Usa un analizzatore JSON5 se quello è il tuo formato di destinazione.
- JSONC (JSON con commenti) è ciò che usano le impostazioni di VS Code. Rimuovi i commenti prima dell’analisi rigorosa.
- YAML è un formato diverso; non assumere che sia “solo JSON indentato”.
Suggerimenti
- Valida prima di impegnarti. Un errore di battitura in un
package.jsono in una configurazione CI interrompe l’intero build finché qualcuno non se ne accorge. - Formattazione dopo la validazione per rendere leggibili le differenze di revisione. Un file JSON su una sola riga è valido ma difficile da rivedere.
- Per payload di grandi dimensioni, valida in streaming (
jqdalla riga di comando, ad esempio). L’analisi nel browser ha difficoltà oltre alcuni MB.
Domande frequenti
Questo strumento controlla solo la validità sintattica, è un JSON ben formato? Per le regole strutturali (campi richiesti, valori enum, lunghezze delle stringhe), usa un validatore JSON Schema. I due passaggi sono complementari: non ha senso eseguire la validazione dello schema su un documento che non è JSON valido in primo luogo.
Perché il JSON standard non ha commenti. // e /* */ sono un’estensione di buon senso (JSONC, JSON5) ma il JSON puro li rifiuta. Rimuovi i commenti prima di inviare a un consumatore rigoroso, o adotta JSON5 in tutto il tuo stack.
Non valido nel JSON rigoroso. La specifica consente solo numeri finiti. Serializzali come stringhe ("NaN", "Infinity") o come null, a seconda di come il tuo consumatore gestisce i dati mancanti.
No, la validazione avviene nel tuo browser, quindi il payload che incolli non lascia mai la pagina. Sicuro per file di configurazione sensibili e risposte API con credenziali.
Strumenti correlati
Riferimento Tabella ASCII
Tabella ASCII completa da 0 a 127 con decimale, esadecimale, ottale, binario e riferimento numerico HTML per ogni carattere, inclusi i codici di controllo come NUL, LF e DEL.
Riferimento ai caratteri HTML
Elenco ricercabile delle entità HTML, dei loro codici nominati e numerici, e copia con un clic per caratteri e simboli speciali.
Generatore di lettere casuali
Genera lettere A-Z casuali. Scegli la quantità, usa maiuscole, minuscole o un mix, e applica il risultato a giochi, spunti o attività in classe.
Riferimento scorciatoie da tastiera
Cerca le scorciatoie predefinite documentate di VS Code, Chrome e Bash con GNU Readline su macOS, Windows e Linux.
Promemoria Markdown
Riferimento pratico Markdown con anteprime reali ed esempi pronti da copiare per titoli, elenchi, tabelle, codice, link, immagini e sintassi GFM.
Formatter HTML
Formatta HTML localmente nel browser con rientri di due o quattro spazi. L’HTML non viene caricato né validato.
Strumento disponibile in altre lingue
- JSON Validator [ID]
- Validador JSON [ES]
- Validateur JSON [FR]
- Validador JSON [PT]
- JSON 검사기 [KO]
- مدقّق JSON [AR]
- JSON-Validator [DE]
- JSON-validator [NL]
- ตัวตรวจสอบความถูกต้องของ JSON [TH]
- Trình kiểm tra JSON [VI]
- JSON-validator [SV]
- Walidator JSON [PL]
- JSONバリデーター [JA]
- Валидатор JSON [RU]
- JSON Doğrulayıcı [TR]
- JSON 校验器 [ZH]
- JSON Validator [EN]