Dev

JSON Diff Avanzato — confronto strutturale con percorso

Confronta due JSON con analisi strutturale profonda: ogni differenza viene mostrata con il percorso esatto (es. users[2].address.city), il tipo di modifica e i valori prima/dopo. Ideale per API versioning, debug di configurazioni e data migration.

→ Apri il tool
Confronta due JSON ignorando l'ordine delle chiavi e la formattazione. Evidenzia aggiunte, rimozioni e valori modificati con percorso completo.
JSON Diff (confronto strutturale) →

Diff "avanzato" vs diff testuale: la differenza chiave

Un diff testuale (come quello del Diff Viewer) confronta le righe del testo — se le stesse chiavi JSON sono scritte in ordine diverso, vengono segnalate come "diverse" anche se il dato è equivalente. Il diff strutturale JSON lavora invece sull'albero dei dati parsato: due JSON con le stesse chiavi in ordine diverso sono considerati identici. Solo le differenze semantiche reali vengono segnalate.

Il livello "avanzato" aggiunge: percorso JSONPath esatto di ogni differenza ($.users[2].roles[0]); tipo di modifica (chiave aggiunta, chiave rimossa, valore modificato, tipo cambiato); confronto array intelligente che individua inserimenti e rimozioni in posizioni intermedie invece di segnalare tutto come "modificato".

Casi d'uso: quando serve il JSON Diff

API versioning: confronta la risposta della v1 e v2 di un endpoint — quali campi sono stati aggiunti, rimossi o cambiati tipo? Fondamentale per scrivere migration code e aggiornare i client. Staging vs Production: le due risposte API dovrebbero essere identiche ma non lo sono — dove divergono esattamente? Configurazioni: due versioni di un config JSON (package.json, tsconfig.json, docker config) — cosa è cambiato tra deploy? Data migration: dopo una migration del database, verifica che i dati esportati in JSON prima e dopo siano equivalenti. Code review API: un collegha ha modificato la struttura della risposta — il diff mostra esattamente l'impatto sul contratto API.

Confronto di array: il problema più complesso

Il confronto di array è la parte più delicata del JSON diff. Considera: [1,2,3] vs [1,3] — il 2 è stato rimosso (posizione 1) o il 3 è stato spostato (posizione 1→2)? Algoritmi diversi danno risposte diverse. Il tool usa l'algoritmo LCS (Longest Common Subsequence) sugli elementi dell'array per trovare la sequenza di modifiche minima. Per array di oggetti, il confronto avviene sui valori degli oggetti — se un campo "id" è presente, viene usato come chiave di matching per confrontare oggetti corrispondenti invece di confrontare per posizione.

JSONPath: come leggere il percorso delle differenze

Il percorso JSONPath identifica univocamente ogni nodo nel documento JSON. $ = radice; .chiave = proprietà di un oggetto; [N] = elemento N-esimo di un array (0-indexed). Esempi: $.users[0].email = campo email del primo utente; $.config.database.host = host nel blocco database della config; $.items[3].tags[1] = secondo tag del quarto item. Conoscere il percorso esatto permette di localizzare immediatamente la differenza nel codice senza dover scorrere il JSON a mano.

FAQ

Qual è la differenza tra JSON Diff e JSON Diff Avanzato?

Entrambi puntano alla stessa pagina — il JSON Diff di ToolsCove include già il confronto strutturale avanzato con percorso JSONPath. Non esiste una versione "base" separata: il tool ha tutte le funzionalità avanzate descritte qui.

Il diff funziona con JSON annidati profondi?

Sì — il confronto è ricorsivo su qualsiasi profondità di annidamento. La performance degrada linearmente con la dimensione del documento: JSON fino a 1MB vengono confrontati istantaneamente nel browser; oltre i 5MB potrebbero richiedere qualche secondo.

Come esportare il risultato del diff?

Copia il report delle differenze dall'area di testo risultante. Il formato di output mostra ogni differenza su una riga separata con percorso, tipo e valori — è leggibile e incollabile direttamente in ticket, PR o documentazione.

I miei dati JSON vengono inviati a server?

No — il confronto avviene completamente nel browser con JavaScript. Nessun dato viene trasmesso a server esterni. Puoi confrontare JSON con dati sensibili (token, credenziali, dati personali) in totale sicurezza.