Confronto JSON: diff di struttura e di valori
Confronta due strutture JSON in tempo reale e individua subito le chiavi aggiunte, rimosse o modificate, con formattazione automatica.
Confrontare due file JSON: come viene calcolato il diff
Lo strumento analizza i due JSON e li percorre chiave per chiave: ogni percorso (per esempio settings.theme) è classificato come aggiunto, rimosso, modificato o con tipo cambiato. L'ordine delle chiavi viene ignorato, ma gli array sono confrontati posizione per posizione.
Il metodo
- Ogni testo viene letto con il parser JSON standard del browser. In caso di errore di sintassi (virgola finale, apici singoli, commento), compare il messaggio di errore e non viene fatto alcun confronto.
- Gli oggetti sono confrontati sull'unione delle loro chiavi: una chiave presente solo a sinistra è «rimossa», solo a destra «aggiunta». I valori presenti da entrambi i lati sono confrontati ricorsivamente.
- Due valori semplici diversi danno «modificato»; un numero diventato stringa (1 e "1") dà «tipo cambiato».
- Gli array sono trattati come oggetti indicizzati: il percorso tags.3 indica il 4º elemento.
Esempio
Con i due JSON di esempio, lo strumento trova 7 differenze: appName, version, settings.theme, settings.notifications e settings.maxItems modificati (50 diventa 100), settings.cacheEnabled aggiunto e tags.3 ("ai") aggiunto. La chiave active, identica, non compare.
Limiti da conoscere
- Un elemento rimosso all'inizio di un array sposta tutti i successivi: ["a","b","c"] confrontato con ["b","c"] mostra due modifiche e una rimozione, non una sola rimozione.
- I numeri sono letti in doppia precisione: oltre 9.007.199.254.740.991, due interi diversi possono essere considerati uguali. Confronta gli identificatori lunghi come stringhe.
- Se una chiave compare due volte nello stesso oggetto, viene considerato solo l'ultimo valore. 1.0 e 1 sono considerati uguali.
- Il pulsante di formattazione reindenta i due testi con 2 spazi; il confronto avviene nel browser, senza invio di dati.
Fonti e date: formato JSON definito dalla RFC 8259 (dicembre 2017), la cui sezione 6 limita l'interoperabilità degli interi all'intervallo ±(2⁵³ − 1) (verificato il 14/10/2026).
Domande frequenti
L'ordine delle chiavi conta nel confronto?
No. {"a":1,"b":2} e {"b":2,"a":1} sono considerati identici, perché lo strumento confronta le chiavi per nome. La RFC 8259 precisa peraltro che l'ordine dei membri di un oggetto non ha un significato garantito.
Perché un array riordinato mostra così tante differenze?
Gli array sono confrontati posizione per posizione. Se un elemento viene rimosso in testa, ogni elemento successivo cambia di posizione: ["a","b","c"] contro ["b","c"] dà due modifiche e una rimozione.
Cosa significa «tipo cambiato»?
La stessa chiave contiene un valore di tipo diverso nei due lati, per esempio il numero 1 a sinistra e la stringa "1" a destra. È una fonte frequente di bug tra un'API e il suo client.
Perché il mio JSON viene rifiutato?
Lo strumento applica la sintassi JSON rigorosa: virgolette doppie obbligatorie, nessuna virgola dopo l'ultimo elemento, nessun commento. Il messaggio di errore del browser indica in genere la posizione del carattere errato.
Lo strumento è davvero gratuito?
Sì, tutti gli strumenti di Kristools sono gratuiti al 100% e accessibili senza registrazione.
I miei dati sono protetti?
Sì. Tutte le elaborazioni vengono eseguite direttamente e in modo sicuro nel tuo browser. Nessun dato personale viene inviato ai nostri server.