
JSON: formattazione, validazione e riparazione di ciò che è rotto
Incolla una risposta di API, una configurazione o un frammento di log: ottieni una vista leggibile, un albero e l'elenco di tutto ciò che non rispetta lo standard, con riga e posizione esatte. Tutto viene analizzato nel tuo browser: i dati non vengono inviati da nessuna parte né conservati.
.json: il file viene letto localmente. Puoi incollare anche ciò che non è ancora JSON valido: un log, una risposta di API con commenti, un frammento con virgole finali.
Chiavi e ordine sono conservati, la scrittura dei numeri non è cambiata.
Incolla del JSON sopra e premi «Elabora».
Incolla del JSON sopra e premi «Elabora».
I dati non lasciano il tuo browser: analisi e formattazione avvengono in locale, senza inviare nulla a un server.
Quattro edizioni dello standard e in che cosa differiscono
JSON è descritto da più documenti, e non sono identici. La scelta della specifica cambia ciò che lo strumento considera un errore. RFC 4627 (2006) — la prima. Un documento di primo livello può essere solo un oggetto o un array; un numero o una stringa da soli non sono ammessi. Alcune vecchie librerie si appoggiano ancora a questa edizione. RFC 7159 (2014) — ha permesso qualsiasi valore al primo livello. Da allora 42 e «testo» sono documenti JSON autosufficienti. RFC 8259 (2017) — quella vigente. Ha aggiunto il requisito UTF-8 per lo scambio fra sistemi e ha stabilito che i nomi in uno stesso oggetto devono essere univoci. ECMA-404 — descrive solo la sintassi. Non vieta le chiavi duplicate e non menziona i surrogati spaiati, quindi qui l'insieme degli avvisi è il più breve. Nel dubbio resta su RFC 8259: è il più severo fra i set di regole vigenti, e ciò che lo supera viene accettato ovunque.
Perché un parser proprio e non JSON.parse del browser
Il parser integrato è fatto per la velocità, non per la diagnostica. Sugli stessi dati tace dove uno strumento dovrebbe parlare: Un messaggio senza coordinate. Il browser dice «Unexpected token» e uno scostamento in caratteri; qui ottieni la riga, la posizione e che cosa era atteso esattamente. Un solo errore per tutto il documento. Dopo il primo intoppo l'analisi si riprende e mostra gli altri, invece di costringerti a correggerli uno per volta. Le chiavi duplicate passano in silenzio. JSON.parse conserva l'ultimo valore e la perdita si nota già in produzione. La scrittura dei numeri va persa. 1.0 diventa 1 e un intero oltre i nove milioni di miliardi cambia le ultime cifre: è esattamente così che si rompono gli identificatori presi dal database. L'ordine delle chiavi nell'output resta quello dell'originale finché non chiedi tu un ordinamento. Qui i numeri escono per impostazione predefinita come erano scritti: lo strumento mostra il documento, non il risultato della sua interpretazione.
Che cosa ripara esattamente la modalità di correzione
I dati reali sono di rado JSON pulito. La modalità di riparazione riporta allo standard ciò che arriva da configurazioni, log e API altrui: i commenti // e /* */ vengono rimossi; le virgole prima della parentesi di chiusura vengono tolte; le virgolette singole e caporali vengono ricondotte a quelle doppie; le chiavi senza virgolette e quelle numeriche vengono messe fra virgolette; True, NULL, None, undefined diventano true, false, null; NaN e Infinity diventano null, perché in JSON non esistono numeri senza valore finito; la scrittura dei numeri: un più di troppo, un punto al margine, zeri iniziali; i caratteri di controllo nelle stringhe vengono sfuggiti; il BOM all'inizio del file e l'involucro JSONP vengono tolti. Nessuna correzione avviene in silenzio: ognuna finisce nell'elenco con il numero di casi. Se il risultato non ti convince, disattiva la casella e il documento viene verificato così com'è.
