Formattatore e validatore JSON
Incolla un JSON e formattalo con 2, 4 o 8 spazi, comprimilo su una sola riga oppure controlla soltanto che sia valido. Il JSON valido torna colorato, con la dimensione prima e dopo; il JSON non valido torna con il messaggio di errore del tuo browser. Gratuito, senza registrazione, e nulla di ciò che incolli lascia il browser.
0 righe · 0 byte
Come usare il formattatore JSON
- 1. Incolla il tuo JSON. Va bene qualsiasi cosa, da un singolo valore a una grande risposta di API. La casella conta righe e byte mentre digiti.
- 2. Scegli il rientro. Scegli 2, 4 o 8 spazi. L'impostazione influisce solo su Formatta.
- 3. Scegli un'azione. Formatta produce un output indentato, Minifica elimina ogni spazio facoltativo e ogni a capo, e Solo convalida controlla la sintassi e mostra un esito verde o rosso senza produrre output.
- 4. Leggi il risultato. Il JSON valido viene mostrato colorato (chiavi viola, stringhe verdi, numeri blu, true e false arancioni, null rosso) con la dimensione dell'input, quella dell'output e la variazione percentuale. Il JSON non valido mostra invece il messaggio del parser. Copia output copia ciò che vedi.
Cosa conta come JSON valido
Lo strumento passa il testo al parser JSON rigoroso del motore JavaScript, quindi accetta esattamente ciò che prescrive lo standard del formato, RFC 8259 (la stessa grammatica di ECMA-404), e nulla di più. È più severo di un oggetto letterale JavaScript, ed è per questo che il codice che funziona in uno script spesso fallisce qui. Gli errori più frequenti:
| Errore | Esempio | Correzione |
|---|---|---|
| Virgola finale | {"a": 1,} | Elimina l'ultima virgola. |
| Apici singoli | {'a': 1} | Usa le virgolette doppie per ogni chiave e ogni stringa. |
| Chiave senza virgolette | {a: 1} | Racchiudila tra virgolette: {"a": 1}. |
| Commento | // nota o /* nota */ | Il JSON non ha commenti; eliminali. |
| Zero iniziale o segno più | 007, +5 | Scrivi 7 e 5. |
| NaN, Infinity o undefined | {"x": NaN} | Non esistono in JSON; usa null o una stringa. |
| A capo grezzo in una stringa | un a capo tra virgolette | Scrivilo come i due caratteri \n. |
| Virgola mancante | {"a": 1 "b": 2} | Separa i membri con le virgole. |
Anche un semplice 42, "text" o null è valido: dalla RFC 7159 un testo JSON può essere un valore qualsiasi, non solo un oggetto o un array. True o NULL con la maiuscola non lo sono: i tre letterali sono in minuscolo.
Cosa cambia con la formattazione
Questo strumento analizza il tuo JSON e lo riscrive, quindi il risultato sono gli stessi dati in un'impaginazione nuova, non una copia carattere per carattere del tuo testo. Quattro cose possono cambiare; le prime due contano se formatti JSON che alimenta un altro sistema:
- I numeri interi grandi perdono precisione. I numeri JavaScript sono float a 64 bit, quindi gli interi oltre 9.007.199.254.740.991 (253 − 1) vengono arrotondati.
9007199254740993torna come9007199254740992. Se i tuoi ID sono così grandi, conservali come stringhe. - I duplicati si fondono. La RFC 8259 dice che i nomi dovrebbero essere univoci ma non vieta le ripetizioni; questo strumento tiene l'ultimo valore e scarta i precedenti.
- Le chiavi con numeri interi vanno per prime. In JavaScript, chiavi come
"1"e"2"vengono elencate prima delle altre in ordine crescente, quindi{"b":1,"2":1,"1":1}viene riscritto come{"1":1,"2":1,"b":1}. Le altre chiavi mantengono il tuo ordine. - I numeri e le sequenze di escape vengono riscritti.
1.50diventa1.5,1e2diventa100e\u00e9diventaé.
Esempio svolto
Prendi questo input di 119 byte, che include un ID grande, uno zero finale, un esponente e una sequenza di escape:
Input
{"title":"APA Manual","year":2020,"tags":["style","7th"],"id":9007199254740993,"price":1.50,"x":1e2,"name":"caf\u00e9"}
Formatta con 2 spazi scrive 156 byte (+31%), un membro per riga, con "id": 9007199254740992, "price": 1.5, "x": 100 e "name": "café". Minifica scrive 114 byte (-4%) su una sola riga, con le stesse modifiche. Nient'altro dei dati cambia. Le dimensioni sono in byte UTF-8, quindi la é conta due.
Quale strumento ti serve?
Questa pagina riguarda il JSON in sé. Se i tuoi dati sono in un altro formato, c'è uno strumento adatto: CSV in JSON per i fogli di calcolo, i convertitori da YAML a JSON e da XML a JSON (previsti), Formattatore XML per i documenti XML e Formattatore HTML per il markup.
Domande frequenti
- Cosa fa un formattatore JSON?
- Analizza il JSON e lo riscrive con un'indentazione coerente e un membro per riga, così una risposta di API minificata diventa leggibile. Poiché deve prima analizzarlo, funziona anche da validatore: un testo che non è JSON valido produce un errore invece dell'output.
- Perché il mio JSON risulta non valido?
- Di solito per uno degli errori nella tabella sopra: una virgola finale, apici singoli, una chiave senza virgolette, un commento o una virgola mancante. Il messaggio viene dal parser JSON del tuo browser, quindi la formulazione cambia tra Chrome, Firefox e Safari, e può indicare o non indicare una posizione; cerca il problema nel punto indicato o subito prima.
- Posso formattare JSON con commenti, JSON5 o JSONC?
- No. Commenti, virgole finali e apici singoli non fanno parte del JSON, e questo strumento usa un parser rigoroso. Rimuovili prima, oppure converti il file in JSON semplice nel tuo editor.
- Qual è la differenza tra Formatta, Minifica e Solo convalida?
- Formatta aggiunge indentazione e a capo, Minifica elimina tutti gli spazi facoltativi per ottenere il testo più piccolo, e Solo convalida controlla la sintassi e mostra un esito senza output. Tutte e tre usano lo stesso parser, quindi un documento che ne supera una le supera tutte.
- Perché un numero nel mio JSON è cambiato?
- Lo strumento legge i numeri come float JavaScript e li stampa di nuovo nella forma più breve di JavaScript. Così
1.50diventa1.5e1e2diventa100, e arrotonda gli interi maggiori di 253 − 1. Conserva gli identificatori molto grandi come stringhe se devono restare esatti. - Il mio JSON viene caricato da qualche parte?
- No. Analisi, formattazione ed evidenziazione avvengono tutte nel tuo browser, e il testo che incolli non viene inviato a CitationEasy né a nessun altro. Svuota la casella quando hai finito su un computer condiviso.
- Posso ordinare le chiavi o usare le tabulazioni per l'indentazione?
- Non qui. Le scelte di indentazione sono 2, 4 o 8 spazi, e le chiavi restano nell'ordine dato nell'input, a parte le chiavi con numeri interi che, come descritto sopra, vanno per prime.