Comparateur JSON
Comparez deux objets JSON côte à côte. Formate, trie les clés et surligne les différences.
Comment Utiliser
- Paste your first JSON into the left panel
- Paste your second JSON into the right panel
- Click Compare — both sides are auto-formatted and sorted
- Differences are highlighted: red for removed lines, green for added lines
Questions Fréquentes
-
Does key order matter?
No. Both JSON objects are sorted by keys before comparing, so differences in key order are ignored.
-
Can I compare nested objects?
Yes. The diff works on the formatted text after sorting, so nested structures are fully compared.
-
What do the colors mean?
Red lines exist only in the left (original) input. Green lines exist only in the right (modified) input. Unchanged lines have no highlight.
-
Is my data sent to a server?
No. All processing happens entirely in your browser.
Pourquoi comparer des objets JSON ?
La comparaison de deux structures JSON est une tâche récurrente dans le développement logiciel. Que ce soit pour vérifier qu'une migration de données s'est bien passée, analyser les changements entre deux versions d'une configuration ou déboguer une différence de comportement entre deux environnements, la capacité à identifier précisément ce qui a changé est précieuse.
Pourquoi un diff texte simple ne suffit pas
La première réaction intuitive est d'utiliser un outil de diff textuel classique (comme git diff ou diff en ligne de commande). Cette approche présente plusieurs limitations critiques pour JSON :
L'ordre des clés
JSON ne garantit pas l'ordre des clés dans un objet. Deux documents JSON strictement équivalents sémantiquement peuvent avoir des clés dans des ordres différents selon la bibliothèque qui les a générés :
{"b": 2, "a": 1} // document 1
{"a": 1, "b": 2} // document 2 — identique, mais diff textuel montre des différences
Un diff textuel naïf signalerait ces deux documents comme différents alors qu'ils représentent exactement la même donnée.
Le formatage variable
Un JSON minifié et sa version formatée avec indentation produisent des centaines de faux positifs dans un diff textuel, masquant les vraies différences.
La normalisation comme solution
Un comparateur JSON intelligent résout ces problèmes par la normalisation avant comparaison :
- Parsing : les deux documents sont analysés en structures de données natives (arbres d'objets en mémoire).
- Tri des clés : toutes les clés de tous les objets, à tous les niveaux d'imbrication, sont triées alphabétiquement.
- Reformatage : les deux structures normalisées sont sérialisées avec la même indentation et le même formatage.
- Diff : le diff textuel est appliqué sur les deux chaînes normalisées, garantissant que seules les vraies différences de données apparaissent.
Cas d'usage typiques
- Validation de migrations : comparer les données avant et après une migration de base de données pour s'assurer qu'aucune information n'a été perdue ou altérée.
- Tests de non-régression : vérifier que la réponse d'une API n'a pas changé entre deux versions.
- Revue de configuration : comparer les fichiers de configuration de deux environnements (développement, staging, production).
- Débogage d'API : identifier exactement quel champ d'une réponse JSON a changé entre deux appels.
- Fusion de données : comprendre les différences entre deux sources de données avant de les réconcilier.
Interpréter les résultats
Les conventions de couleur standard sont :
- Rouge / supprimé : ligne présente uniquement dans le document de gauche (original)
- Vert / ajouté : ligne présente uniquement dans le document de droite (modifié)
- Sans couleur : ligne identique dans les deux documents
Une ligne modifiée apparaît généralement comme une paire rouge + verte, montrant l'ancienne et la nouvelle valeur côte à côte.