← { } JSON
💾 Dev Tools

JSON Diff Online

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).

Modalità Base vs Strutturale: quando usare quale

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.

Casi d'uso reali

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.

Differenza tra diff testuale e diff strutturale

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.

FAQ

I dati vengono inviati a un server?

No. Tutto avviene nel browser con JavaScript. Nessun dato viene trasmesso a server esterni — puoi usarlo anche con JSON contenenti dati sensibili.

Funziona con array JSON?

Sì. Gli array vengono confrontati elemento per elemento per indice. Elementi aggiunti, rimossi o modificati vengono evidenziati come per gli oggetti.

C'è un limite di dimensione per i JSON?

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.

Quando usare diff flat vs strutturale

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.

Casi d'uso reali

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.

Diff testuale vs diff strutturale: la differenza chiave

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.

Errori comuni nel confronto JSON

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.