100 % locale — i tuoi dati non lasciano mai il tuo browser

Diff JSON — vedi quale valore è cambiato

Confronta due documenti JSON. Indentazione e ordine delle chiavi vengono neutralizzati prima: quel che vedi è ciò che differisce davvero, cifra per cifra.

Istantaneo Privato Zero cookie

Originale

Modificato

Differenze

Che cosa fa questo strumento

Normalizza entrambi i lati — indentazione a due spazi, chiavi ordinate — poi li confronta riga per riga e mostra il risultato come diff unificato:

@@ -2,4 +2,4 @@
   "host": "localhost",
-  "port": 8080,
+  "port": 3000,
   "tls": true

- è l’originale, + il modificato, e la riga @@ indica la regione. È il formato che parlano git diff e patch.

Che cosa conta come differenza

differenza?
Indentazione, ritorni a capono
Ordine delle chiavi in un oggettono, di default
Ordine degli elementi in un arraysì
Un valore cambiatosì

Oggetti e array sono trattati diversamente perché JSON li tratta diversamente: un oggetto è un insieme non ordinato di coppie, un array è una successione. Riordinare le chiavi di un oggetto dà lo stesso valore; riordinare gli elementi di un array ne dà un altro.

Fino all’ultima cifra

{ "id": 12345678901234567890 }
{ "id": 12345678901234567891 }

Questi due documenti differiscono, e questo strumento lo dice.

Vale la pena scriverlo perché non è sempre stato così. Normalizzare entrambi i lati con un’analisi JSON ordinaria faceva passare ogni numero per un valore in virgola mobile a doppia precisione, e i due identificatori — venti cifre, diversi solo nell’ultima — si confondevano in un unico valore. Il diff tornava vuoto, cosa che si legge come nessuna differenza.

Un diff vuoto è un’affermazione, non un’alzata di spalle. Uno strumento di confronto è proprio quello a cui si chiede di vedere ciò che l’occhio non vede: ora entrambi i lati sono letti senza perdita e confrontati così come sono scritti.

Le chiavi doppie vengono segnalate

Se uno dei due documenti ripete una chiave, il confronto si ferma e lo dice, esattamente come fa il formattatore JSON. Tenere solo l’ultima occorrenza di ciascuna — ciò che la maggior parte dei parser fa senza rumore — lascerebbe svanire una differenza reale tra i due file prima ancora di cominciare.

Privato per progettazione

Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.

Domande frequenti

Perché un JSON riordinato risulta identico?
Perché un oggetto JSON è un insieme non ordinato di coppie nome/valore: due documenti le cui chiavi compaiono in ordine diverso portano lo stesso valore. Entrambi i lati vengono ordinati prima del confronto. Disattiva l’opzione se vuoi vedere proprio il riordino — prima e dopo uno strumento che ha riscritto il file, per esempio.
Perché elementi di array riordinati sono una differenza?
Perché l’ordine di un array *fa parte* del suo valore. `["read", "write"]` e `["write", "read"]` sono due valori JSON diversi, e un confronto che lo nascondesse nasconderebbe un cambiamento nell’ordine delle migrazioni, dei passi di una pipeline, di qualunque cosa sia sequenziale.
E se la stessa chiave compare due volte in uno dei file?
Viene segnalata anziché arbitrata in silenzio — la stessa risposta del formattatore JSON. Confrontare due documenti tenendo solo l’ultima occorrenza di ogni chiave ripetuta lascerebbe sparire una differenza reale tra i due file.

Convertitori correlati