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