Ce que fait cet outil JSON diff
Les outils de diff des textes traitent JSON comme des lignes, donc une clé réorganisée ou un fichier reformaté apparaît comme un mur de rouge et de vert. Cet outil compare la structure de deux documents JSON. Il parcourt les deux arbres, rapporte chaque valeur ajoutée, supprimée et modifiée avec son chemin JSON exact, signale les valeurs dont le type ** a changé (un nombre devenu une chaîne est une régression API classique) et affiche le résultat sous forme d'arbre pliable ou d'une liste plate de chemins. La comparaison s'exécute dans un Web Worker, de sorte que les charges utiles de grande taille restent réactives.
Mode d'emploi
- Collez le document original dans A et le nouveau dans B.
- Lisez les compteurs de synthèse: ajoutés, supprimés, modifiés et changements de type.
- Utilisez la vue d'arbre pour étendre uniquement les branches qui diffèrent, ou passez à chemins pour une liste facile à copier comme
$.items[2].price. - Activez ignorer l'ordre lorsque les tableaux sont des ensembles (tags, autorisations) plutôt que des listes ordonnées.
- Configurez match par clé (par exemple
id) pour apparier les éléments du tableau par identité, donc l'insertion d'un élément ne change pas l'apparence de chaque élément suivant.
Utilisations typiques
- Vérifications de régression API: comparer une réponse de mise en scène et de production après un déploiement.
- Drift de configuration: différence entre deux configurations d'environnement ou plans JSON de Terraform.
- ** Test de contrat:** les champs de repérage d'un back-end sont supprimés ou renommés silencieusement.
- ** Fixtures:** examiner ce qui a changé dans un test instantané avant de l'accepter.
Conseils et cas particuliers
- L'ordre de la clé d'objet n'a jamais d'importance; les objets JSON sont désorganisés par définition.
1et1.0sont des nombres égaux dans JSON;"1"et1sont un changement de type.- Avec l'ordre ignoré, les tableaux de primitifs sont comparés comme des multisets, donc les doublons comptent toujours.
- La correspondance par clé ne s'applique qu'aux tableaux d'objets qui contiennent tous cette clé; les autres tableaux se réfèrent à la comparaison d'index.
- Un JSON invalide est signalé avec le message d'erreur de l'analyseur pour le côté qui a échoué.