Aller au contenu
SDETRole
SDETRole

JSON et données

Comparateur JSON

Comparez deux documents JSON sémantiquement, avec un chemin par changement.

Fonctionne entièrement dans votre navigateur Sans inscription

Original (expected)

Modified (actual)

Paste two JSON documents to compare them

Key order is always ignored. Tick “Ignore array order” to compare arrays as unordered sets.

À propos de cet outil

Un diff texte de deux réponses d’API est bruyant : des clés réordonnées et des espaces différents apparaissent comme des changements alors que les données sont identiques. Ce comparateur analyse les deux documents et compare leur structure, pour ne signaler que les vraies différences. Chacune est listée avec un emplacement de type JSONPath ($.user.roles[1]) et un type : « added » (ajouté), « removed » (supprimé), « changed » (modifié) ou « type-changed » (type modifié), ce dernier étant le bug classique "49.99" contre 49.99. Utilisez-le pour expliquer une assertion en échec, relire un changement de contrat entre deux versions d’API ou vérifier une mise à jour de snapshot avant de l’accepter.

Mode d’emploi

  1. Collez le JSON attendu (ou le plus ancien) à gauche et le JSON obtenu (ou le plus récent) à droite, ou cliquez sur « Load sample » (charger un exemple).
  2. Lisez la liste des changements : chaque ligne indique le type de changement, le chemin et les valeurs avant → après.
  3. Cochez « Ignore array order » (ignorer l’ordre des tableaux) quand les tableaux sont en réalité des ensembles, comme des rôles, des tags ou des résultats de recherche non triés.
  4. Passez en vue « Side by side » (côte à côte) ou « Unified » (unifiée) pour voir les changements en contexte ; les deux vues trient d’abord les clés pour que le réordonnancement ne soit pas signalé.

FAQ : Comparateur JSON

Quelle est la différence entre « changed » et « type-changed » ?

« changed » signifie que la valeur diffère mais que le type JSON est le même, par exemple "pending" qui devient "shipped". « type-changed » signifie que le type lui-même diffère, comme un nombre devenu chaîne ou un objet devenu null. Les changements de type sont souvent des bugs de contrat qui cassent les clients fortement typés même quand la valeur semble identique.

Comment les tableaux sont-ils comparés avec « Ignore array order » ?

Chaque élément de gauche est associé à un élément strictement égal à droite. Les restes sont signalés comme supprimés ou ajoutés à leur propre index. Les doublons comptent, donc [1, 2, 2] et [2, 1] diffèrent toujours. Comme les éléments sont associés par égalité complète, un objet modifié dans un tableau non ordonné apparaît comme une suppression plus un ajout.

Puis-je utiliser ces chemins dans mes tests ?

Oui. Les chemins utilisent la notation pointée pour les clés simples et la notation entre crochets pour les clés contenant des espaces ou des symboles, ce qui fonctionne dans le testeur JSONPath et se transpose directement en assertions JSONPath dans des outils comme REST Assured ou Postman.

Saisissez un terme pour rechercher sur SDETRole.

Recherche plein texte par Pagefind · s’exécute dans votre navigateur Ouvrir la page de recherche →