Comment comparer deux fichiers JSON
- Collez le JSON d'origine à gauche et le JSON modifié à droite, ou déposez un fichier de chaque côté.
- Lisez le résumé et la liste des différences : chaque valeur ajoutée, supprimée ou modifiée est affichée avec son chemin, par exemple
$.users[2].email. - Faites défiler jusqu'à la vue côte à côte pour voir les modifications dans leur contexte. Cochez Ignorer l'ordre des tableaux si l'ordre des éléments d'une liste n'a pas d'importance.
Un diff JSON sémantique plutôt qu'un diff texte
Un simple diff texte signale une différence dès qu'une clé change de place, que l'indentation diffère ou qu'un nombre est écrit autrement. Ce diff JSON compare les données elles-mêmes :
- L'ordre des clés est ignoré –
{"a":1,"b":2}est égal à{"b":2,"a":1}. - La mise en forme est ignorée – les espaces, les sauts de ligne et l'indentation ne font aucune différence.
- Les nombres sont comparés par valeur –
1.0est égal à1. - Les tableaux sont alignés – l'insertion d'un élément ne marque pas tous les éléments suivants comme modifiés, et chaque objet modifié est apparié à son équivalent le plus proche.
- Ignorer l'ordre des tableaux – compare les tableaux comme des collections non ordonnées, pratique pour des listes de tags, d'identifiants ou de permissions.
Comprendre les résultats de la comparaison
| Libellé | Signification | Le chemin désigne |
|---|---|---|
| Ajouté | La valeur n'existe que dans le JSON modifié | sa position dans le JSON modifié |
| Supprimé | La valeur n'existe que dans le JSON d'origine | sa position dans le JSON d'origine |
| Modifié | La clé existe dans les deux documents, avec une valeur ou un type différent | sa position dans le JSON modifié |
Dans la vue côte à côte, les deux documents sont formatés avec des clés triées afin que les lignes correspondantes se fassent face ; les longues portions inchangées sont repliées, sauf si vous décochez Masquer les lignes inchangées.
Questions fréquentes
L'ordre des clés a-t-il une importance ?
Non. Par définition, les objets JSON ne sont pas ordonnés : la comparaison ignore donc l'ordre des clés. Les tableaux, eux, sont ordonnés, sauf si vous cochez Ignorer l'ordre des tableaux.
Peut-on comparer de gros fichiers JSON ?
Oui. La comparaison s'exécute dans votre navigateur et liste les 200 premières différences, avec un bouton pour toutes les afficher ; la vue côte à côte affiche jusqu'à 5000 lignes.
Comment comparer du JSON dans le code ?
En Python, json.loads(a) == json.loads(b) teste l'égalité. JavaScript ne propose pas de comparaison profonde native ; des bibliothèques comme Lodash offrent _.isEqual(a, b). En ligne de commande, diff <(jq -S . a.json) <(jq -S . b.json) affiche les lignes qui diffèrent.
Mes données sont-elles envoyées sur un serveur ?
Non. Les deux documents sont comparés localement dans votre navigateur et ne quittent jamais votre appareil.