Mode d'emploi
- Collez l'ancien JSON dans JSON de gauche et le nouveau dans JSON de droite.
- Cochez Ignorer l'ordre des éléments de tableau si les tableaux sont des ensembles, comme des listes d'étiquettes.
- 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
- RFC 8259 (en anglais) : The JavaScript Object Notation (JSON) Data Interchange Format
- RFC 6901 (en anglais) : JavaScript Object Notation (JSON) Pointer
- RFC 6902 (en anglais) : JavaScript Object Notation (JSON) Patch
Chiffres et texte vérifiés pour la dernière fois le mardi 10 novembre 2026.