Confronta due JSON e visualizza aggiunte, rimozioni e modifiche. Scegli la modalità Base (flat, ideale per JSON semplici) o Strutturale (side-by-side con navigazione, per JSON annidati e complessi).
La modalità Base appiattisce entrambi i JSON e confronta ogni chiave path per path (es. user.name, items[0].id). È veloce e ottima per JSON semplici o quando vuoi una lista ordinata delle differenze. La modalità Strutturale mostra il diff side-by-side con navigazione: ideale per JSON complessi e annidati, dove vuoi vedere il contesto esatto di ogni modifica.
Il JSON Diff è utile per confrontare risposte API tra ambienti diversi (staging vs produzione), per verificare che un refactoring non abbia cambiato la struttura dati, per confrontare config file JSON prima e dopo un deploy, e per individuare drift di configurazione tra microservizi.
Un diff testuale normale confronta riga per riga e viene ingannato da semplici riformattazioni o riordinamenti di chiavi. Il diff strutturale confronta semanticamente: {"a":1,"b":2} e {"b":2,"a":1} sono identici strutturalmente, ma diversi testualmente.
No. Tutto avviene nel browser con JavaScript. Nessun dato viene trasmesso a server esterni — puoi usarlo anche con JSON contenenti dati sensibili.
Sì. Gli array vengono confrontati elemento per elemento per indice. Elementi aggiunti, rimossi o modificati vengono evidenziati come per gli oggetti.
Non c'è un limite imposto, ma JSON molto grandi (oltre 1 MB) potrebbero rallentare il browser. Per file grandi usa la modalità Base che è più leggera.
La modalità Base (flat) appiattisce entrambi i JSON e confronta chiave per chiave con notazione dot (user.name, items[0].id). È veloce, leggibile e ottima per JSON con struttura semplice o per ottenere una lista ordinata di tutte le differenze. La modalità Strutturale (side-by-side) mostra i due JSON affiancati con navigazione tra le differenze — ideale per JSON complessi e annidati dove vuoi vedere il contesto esatto di ogni modifica e capire la struttura intorno alla differenza.
Il JSON Diff è usato per: confrontare response API tra ambienti diversi (staging vs produzione); verificare che un refactoring non abbia cambiato la struttura dati esposta; confrontare config file JSON prima e dopo un deploy; rilevare drift di configurazione tra microservizi; debuggare differenze tra due versioni di un fixture di test; confrontare package.json o tsconfig.json dopo un upgrade.
Un diff testuale (come quello di git) confronta riga per riga ed è ingannato da semplici riformattazioni: {"a":1,"b":2} e {"b":2,"a":1} risultano diversi testualmente ma sono identici semanticamente. Il diff strutturale confronta i valori delle chiavi indipendentemente dall'ordine — un JSON riformattato o con chiavi riordinate viene riconosciuto come identico. Questo è cruciale quando confronti output di sistemi che serializzano le chiavi in ordine diverso.
Tipi diversi per lo stesso valore: "42" (stringa) vs 42 (numero) — identici visivamente ma semanticamente diversi in JSON. null vs chiave assente: {"a": null} e {} sono diversi — la chiave a esiste ma è null nel primo caso. Array con ordine diverso: [1,2,3] e [3,2,1] sono array diversi in JSON anche se contengono gli stessi elementi — il diff li segnalerà come modificati per ogni indice.