MiServe DevTools

I tuoi adesivi

Fissa qui gli strumenti. Restano salvati in questo browser.

Formattatore e validatore JSON

Formatta, minifica e valida JSON, con la riga e la colonna esatte degli errori di sintassi e i numeri grandi lasciati come sono scritti.

Funziona nel tuo browser. Nulla di ciò che incolli viene caricato.

Informazioni su questo strumento

Cos'è un JSON valido

JSON è definito dalla RFC 8259 e da ECMA-404. Un documento è un solo valore: un oggetto, un array, una stringa, un numero, true, false o null. Stringhe e chiavi degli oggetti si scrivono tra virgolette doppie, e non esiste una sintassi per i commenti.

Molti documenti non validi contengono qualcosa che un object literal di JavaScript ammette e JSON no: una virgola dopo l'ultimo elemento, apici singoli, una chiave senza virgolette o un commento. Con Correggi gli errori comuni attivo, questo strumento li legge, insieme ad a capo e tabulazioni non codificati dentro le stringhe, a un backslash prima di un apice singolo e a True, False e None di Python, ti dice cosa ha cambiato e scrive JSON rigoroso.

Come leggere l'errore

Ogni browser formula a modo suo gli errori di JSON.parse, e alcuni non dicono dove si trovano. Questo strumento legge il testo con un parser proprio, quindi il messaggio, la riga e la colonna sono gli stessi ovunque. Vai all'errore seleziona nell'input il carattere che causa il problema; quando incolli un documento intero, lo strumento lo fa da solo.

La posizione è il punto in cui il parser non è riuscito a proseguire, che può trovarsi un po' dopo l'errore vero e proprio. Una virgola mancante, per esempio, viene segnalata sul primo carattere dell'elemento successivo.

Numeri grandi e chiavi duplicate

La grammatica di JSON non pone limiti alla dimensione di un numero, ma JSON.parse in JavaScript trasforma ogni numero in un float a 64 bit, che rappresenta esattamente tutti gli interi solo fino a 2 elevato alla 53 (9.007.199.254.740.992). Un identificativo più grande, come 12345678901234567890, torna da JSON.parse come 12345678901234567000. Questo formattatore copia il testo di ogni numero invece di convertirlo, quindi gli interi lunghi, 1.0 e 1e5 escono esattamente come sono entrati, e ti avvisa quando un intero non sopravviverebbe a un parser JavaScript.

La RFC 8259 dice che le chiavi di un oggetto dovrebbero essere univoche e che il comportamento del software che riceve un duplicato è imprevedibile. Molti parser tengono solo l'ultimo valore senza avvisare. Il formattatore mantiene ogni voce e ti dice dove si trova il primo duplicato.

Ordina le chiavi ordina le chiavi di ogni oggetto, a ogni livello, per code unit UTF-16, che è l'ordine del sort predefinito di JavaScript: prima le cifre, poi le lettere maiuscole, poi le minuscole. Gli array mantengono il loro ordine. La dimensione è calcolata in byte UTF-8.

Domande

Il JSON che incollo viene inviato a un server?

No. Il testo viene analizzato e formattato da JavaScript nella scheda del tuo browser, e lo strumento non fa alcuna richiesta di rete con ciò che incolli.

Perché commenti e virgole finali sono un errore?

La grammatica della RFC 8259 non ha una sintassi per i commenti e richiede un valore dopo ogni virgola, quindi un parser standard rifiuta entrambi. JSON5 è un formato diverso che li ammette. Attiva la correzione automatica per leggere un file del genere e ottenere JSON rigoroso.

Che differenza c'è tra formattare e minificare?

Formattare mette ogni elemento su una riga sua e lo indenta, così la struttura si legge bene. Minificare toglie gli spazi tra gli elementi, così il documento occupa meno spazio da salvare e da inviare. I dati sono gli stessi in entrambe le forme.

Ordinare le chiavi cambia i dati?

Non per un programma che segue la specifica, che descrive un oggetto come una collezione non ordinata di coppie nome e valore. Ordinare le chiavi aiuta quando confronti due documenti riga per riga. Gli array sono ordinati, quindi i loro elementi non vengono mai spostati.

Altri strumenti in Dati