Comparateur JSON : diff de structure et de valeurs
Comparez deux structures JSON en temps réel, identifiez instantanément les clés ajoutées, supprimées ou modifiées avec mise en forme automatique.
Comparer deux fichiers JSON : comment le diff est calculé
L'outil analyse les deux JSON puis les parcourt clé par clé : chaque chemin (par exemple settings.theme) est classé comme ajouté, supprimé, modifié ou changé de type. L'ordre des clés est ignoré, mais les tableaux sont comparés position par position.
La méthode
- Chaque texte est lu avec l'analyseur JSON standard du navigateur. En cas d'erreur de syntaxe (virgule finale, guillemets simples, commentaire), le message d'erreur s'affiche et aucune comparaison n'est faite.
- Les objets sont comparés sur l'union de leurs clés : une clé présente seulement à gauche est « supprimée », seulement à droite « ajoutée ». Les valeurs présentes des deux côtés sont comparées récursivement.
- Deux valeurs simples différentes donnent « modifié » ; un nombre devenu chaîne (1 et "1") donne « type changé ».
- Les tableaux sont traités comme des objets indexés : le chemin tags.3 désigne le 4e élément.
Exemple
Avec les deux JSON d'exemple, l'outil trouve 7 différences : appName, version, settings.theme, settings.notifications et settings.maxItems modifiés (50 devient 100), settings.cacheEnabled ajouté et tags.3 ("ai") ajouté. La clé active, identique, n'apparaît pas.
Limites à connaître
- Un élément retiré en début de tableau décale tous les suivants : ["a","b","c"] comparé à ["b","c"] affiche deux modifications et une suppression, pas une seule suppression.
- Les nombres sont lus en double précision : au-delà de 9 007 199 254 740 991, deux entiers différents peuvent être jugés égaux. Comparez les identifiants longs sous forme de chaînes.
- Si une clé apparaît deux fois dans un même objet, seule la dernière valeur est prise en compte. 1.0 et 1 sont considérés comme égaux.
- Le bouton de mise en forme réindente les deux textes avec 2 espaces ; la comparaison se fait dans le navigateur, sans envoi de données.
Sources et dates : format JSON défini par la RFC 8259 (décembre 2017), dont la section 6 limite l'interopérabilité des entiers à l'intervalle ±(2⁵³ − 1) (vérifié le 14/10/2026).
Questions fréquentes
L'ordre des clés compte-t-il dans la comparaison ?
Non. {"a":1,"b":2} et {"b":2,"a":1} sont jugés identiques, car l'outil compare les clés par leur nom. La RFC 8259 précise d'ailleurs que l'ordre des membres d'un objet n'a pas de sens garanti.
Pourquoi un tableau réordonné affiche-t-il autant de différences ?
Les tableaux sont comparés position par position. Si un élément est retiré en tête, chaque élément suivant change de rang : ["a","b","c"] contre ["b","c"] donne deux modifications et une suppression.
Que signifie « type changé » ?
La même clé contient une valeur de type différent des deux côtés, par exemple le nombre 1 à gauche et la chaîne "1" à droite. C'est une source fréquente de bugs entre une API et son client.
Pourquoi mon JSON est-il refusé ?
L'outil applique la syntaxe JSON stricte : guillemets doubles obligatoires, pas de virgule après le dernier élément, pas de commentaires. Le message d'erreur du navigateur indique en général la position du caractère fautif.
L'outil est-il vraiment gratuit ?
Oui, l'intégralité des outils sur Kristools sont 100% gratuits et accessibles sans inscription.
Mes données sont-elles protégées ?
Oui. Tous les traitements sont effectués directement et en toute sécurité dans votre navigateur. Aucune donnée personnelle n'est envoyée vers nos serveurs.