Comparer du JSON en ignorant l’ordre des clés
Deux objets JSON peuvent être équivalents même si leurs propriétés apparaissent dans un ordre différent. Une comparaison de texte considère ce réordonnancement inoffensif comme un changement ; une comparaison sémantique l’ignore.
Les objets et les tableaux suivent des règles différentes
L’ordre des propriétés d’un objet n’a pas de sens sémantique ; elles doivent donc être associées par nom. L’ordre d’un tableau est généralement significatif et chaque valeur reste liée à son index, sauf si l’application définit une autre règle d’identité.
Aplatissez les valeurs en chemins stables
Des chemins comme $.client.adresse.ville ou $.articles[2].prix donnent une coordonnée stable à chaque valeur primitive. Leur comparaison révèle les ajouts, suppressions et changements sans le bruit de l’indentation ou de l’ordre des clés.
- Analysez d’abord les deux documents.
- Triez les clés des objets de manière déterministe.
- Conservez les index des tableaux.
- Comparez la valeur de chaque chemin obtenu.
Sachez quand un prétraitement est nécessaire
Les horodatages générés, identifiants de requête et tableaux non ordonnés peuvent nécessiter une règle explicite d’exclusion ou de tri. Appliquez et documentez ces règles avant la comparaison ; sinon, le résultat ne pourra pas être reproduit.