Comparateur JSON et patch

Collez deux documents JSON. La page liste chaque valeur ajoutée, supprimée ou modifiée, avec son chemin, et écrit un JSON Patch RFC 6902 qui transforme le document de gauche en celui de droite.

Gratuit Fonctionne dans votre navigateur Vérifié le mardi 10 novembre 2026

Le premier document, en général l'ancienne version. Ses valeurs sont l'« avant » de chaque changement.

Le second document, en général la nouvelle version. Ses valeurs sont l'« après » de chaque changement.

Compare les tableaux comme des ensembles : un élément qui ne fait que se déplacer n'est pas un changement.

Résultat

Nombre de différences — Valeurs ajoutées, supprimées et modifiées ensemble.
Validité — Indique si les deux textes sont du JSON valide, ou lequel ne l'est pas.
Résumé —
Vérification du patch — Applique le patch au document de gauche dans le navigateur, et compare le résultat au document de droite.
JSON Patch (RFC 6902)
Différences

Cet outil fonctionne dans votre navigateur. Ce que vous saisissez ne nous est pas envoyé.

Mode d'emploi

  1. Collez l'ancien JSON dans JSON de gauche et le nouveau dans JSON de droite.
  2. Cochez Ignorer l'ordre des éléments de tableau si les tableaux sont des ensembles, comme des listes d'étiquettes.
  3. Lisez le tableau Différences. Chaque ligne donne le Chemin (JSON Pointer) de la valeur, et copiez le JSON Patch lorsque Vérification du patch indique qu'il s'applique.

Comment les documents sont comparés

Les deux documents sont comparés par valeur. L'ordre des noms dans un objet n'a pas d'importance, car le JSON définit un objet comme un ensemble de membres. L'ordre des éléments d'un tableau compte, sauf si vous cochez l'option, car un tableau est une liste ordonnée.

Les nombres sont comparés comme des nombres : 1 et 1.0 sont égaux. La RFC 8259, section 6, indique que les entiers de −(2^53)+1 à (2^53)−1 sont lus de la même façon par toutes les implémentations, et qu'un entier plus long peut être arrondi à la lecture.

Chemins et patch

Un chemin est un JSON Pointer (RFC 6901) : chaque étape est un nom ou un indice, séparé par une barre oblique. Le premier élément de la liste des étiquettes est /tags/0, et le chemin vide désigne le document entier. Une barre oblique dans un nom s'écrit ~1, et un tilde s'écrit ~0.

Le JSON Patch (RFC 6902) utilise trois opérations : add, remove et replace. Les éléments de tableau supprimés sont retirés en partant du dernier, pour que chaque indice reste juste au moment où il sert, et les éléments ajoutés sont placés à la fin avec l'indice « - », que la RFC 6902 définit comme la fin du tableau.

Ignorer l'ordre des tableaux

Avec l'option cochée, les éléments sont appariés par leur valeur, quelle que soit leur position. Les éléments sans correspondant sont signalés comme ajoutés ou supprimés. Un tableau qui diffère est remplacé en entier dans le patch, car un patch qui ne fait que déplacer des éléments devrait connaître leur déplacement. Le patch donne alors le tableau dans l'ordre du document de droite.

Exemple détaillé : les documents par défaut

Le document de gauche a le nom FireToolLand, la version 1, les étiquettes json et csv, et free à true. Le document de droite a la version 2, les étiquettes csv, json et yaml, et une licence à null. Lues dans l'ordre, les différences sont au nombre de six : la version, les deux étiquettes modifiées, l'étiquette yaml ajoutée, free supprimé et la licence ajoutée.

Avec Ignorer l'ordre des éléments de tableau coché, les étiquettes sont les deux mêmes éléments dans un autre ordre : la seule différence d'étiquette est yaml, et le nombre tombe à quatre.

Résultat Textes par défaut Ordre ignoré
Nombre de différences 6 4
Résumé 2 ajoutées, 1 supprimée, 3 modifiées. 2 ajoutées, 1 supprimée, 1 modifiée.

Questions fréquentes

Pourquoi l'ordre des éléments d'un tableau compte-t-il ?

En JSON, un tableau est une liste ordonnée : [1,2] et [2,1] sont donc des données différentes. Cochez Ignorer l'ordre des éléments de tableau lorsque le tableau est un ensemble, comme une liste d'étiquettes ou de permissions.

Que signifie un chemin comme /tags/0 ?

C'est un JSON Pointer (RFC 6901) : le membre tags, puis son premier élément, car les indices comptent à partir de 0. Le chemin vide désigne le document entier, et un nom qui contient une barre oblique s'écrit avec ~1 à sa place.

1 et 1.0 sont-ils la même valeur ?

Oui. Ce sont tous deux le nombre un, si bien que la page ne signale aucune différence. Les entiers plus grands que 2^53 peuvent être arrondis par un analyseur JSON : comparez donc les longs identifiants comme du texte.

À quoi sert un JSON Patch ?

C'est une liste d'étapes (RFC 6902) qu'un serveur ou une bibliothèque applique à un document pour obtenir un autre, par exemple pour mettre à jour un fichier de réglages enregistré. La vérification du patch montre que les étapes donnent le bon document.

Pourquoi un tableau entier est-il remplacé lorsque l'ordre est ignoré ?

Lorsque l'ordre est ignoré, un tableau modifié n'a pas d'étape unique qui le transforme en bon tableau sans connaître le déplacement de ses éléments. Le patch écrit donc le bon tableau en entier.

Mon JSON est-il envoyé quelque part ?

Non. Les deux textes sont lus et comparés dans votre navigateur, et rien de ce que vous collez n'est envoyé à notre serveur ni stocké là-bas.

Sources

Chiffres et texte vérifiés pour la dernière fois le mardi 10 novembre 2026.

Nous utilisons des cookies nécessaires au fonctionnement du site. Avec votre accord, Google utilise aussi des cookies publicitaires pour afficher des annonces personnalisées. Si vous les refusez, vous voyez toujours des annonces, mais elles ne sont pas personnalisées.