Come confrontare due JSON
- Incolla il JSON originale a sinistra e quello modificato a destra, oppure trascina un file su ciascun lato.
- Leggi il riepilogo e l'elenco delle differenze: ogni valore aggiunto, rimosso o modificato viene mostrato con il suo percorso, ad esempio
$.users[2].email. - Scorri fino alla vista affiancata per vedere le modifiche nel loro contesto. Spunta Ignora l'ordine degli array se l'ordine degli elementi delle liste non conta.
Un JSON diff semantico invece di un diff testuale
Un normale diff testuale segnala una modifica ogni volta che una chiave si sposta, l'indentazione cambia o un numero è scritto in modo diverso. Questo JSON diff confronta invece i dati stessi:
- L'ordine delle chiavi è ignorato –
{"a":1,"b":2}è uguale a{"b":2,"a":1}. - La formattazione è ignorata – spazi, a capo e indentazione non fanno differenza.
- I numeri sono confrontati per valore –
1.0è uguale a1. - Gli array vengono allineati – inserire un elemento non segna come modificati tutti quelli successivi, e gli oggetti modificati vengono abbinati alla controparte più simile.
- Ignora l'ordine degli array – confronta gli array come insiemi non ordinati, utile per liste di tag, ID o permessi.
Come leggere i risultati
| Etichetta | Significato | Il percorso indica |
|---|---|---|
| Aggiunto | Il valore esiste solo nel JSON modificato | la sua posizione nel JSON modificato |
| Rimosso | Il valore esiste solo nel JSON originale | la sua posizione nel JSON originale |
| Modificato | Entrambi i documenti hanno la chiave, ma con un valore o un tipo diverso | la sua posizione nel JSON modificato |
Nella vista affiancata entrambi i documenti sono formattati con le chiavi ordinate, così le righe corrispondenti si trovano una di fronte all'altra; i lunghi tratti invariati vengono compressi, a meno che tu non tolga la spunta da Nascondi le righe invariate.
Domande frequenti
L'ordine delle chiavi conta?
No. Per definizione gli oggetti JSON non sono ordinati, quindi il confronto ignora l'ordine delle chiavi. Gli array invece sono ordinati, a meno che tu non spunti Ignora l'ordine degli array.
Posso confrontare file JSON di grandi dimensioni?
Sì. Il confronto avviene nel tuo browser ed elenca le prime 200 differenze, con un pulsante per mostrarle tutte; la vista affiancata mostra fino a 5.000 righe.
Come si confrontano due JSON nel codice?
In Python, json.loads(a) == json.loads(b) verifica l'uguaglianza. JavaScript non ha un confronto profondo integrato; librerie come Lodash offrono _.isEqual(a, b). Da riga di comando, diff <(jq -S . a.json) <(jq -S . b.json) mostra le righe che differiscono.
I miei dati vengono caricati online?
No. Entrambi i documenti vengono confrontati localmente nel tuo browser e non lasciano mai il tuo dispositivo.