JSON Diff
Compare two JSON documents structurally: added/removed keys, changed values and type changes with exact paths, ignoring key order.
Visualisez en un coup d’œil les ajouts, suppressions, modifications et changements de type
Quelle est la différence entre JSON Diff et une comparaison de texte ?
JSON Diff analyse les deux JSON comme des objets avant de les comparer récursivement. Il signale uniquement les différences de structure et de contenu, avec pour chaque différence le chemin JSONPath, le type de changement et les valeurs avant et après.
L’ordre des clés d’un objet ne crée pas de différence
Une comparaison de texte classique considère {"a":1,"b":2} et {"b":2,"a":1} comme deux contenus différents, car l’ordre des caractères n’est pas le même. Du point de vue sémantique du JSON, ces deux objets sont pourtant équivalents. JSON Diff compare les valeurs à partir des noms de champs et ne signale donc aucun écart lorsque seul l’ordre des clés change.
Les quatre types de différences détectés
Ajout (champ présent dans B mais absent de A), suppression (champ présent dans A mais absent de B), modification de valeur (valeur différente au même chemin) et changement de type (par exemple, le nombre 18 devient la chaîne 18). Les éléments des tableaux sont comparés par index, tandis que les objets et tableaux imbriqués sont comparés récursivement. La liste des différences peut être copiée en texte brut avec les préfixes + / - / ~ / !.
Comment lire la zone de résultats
Le tableau de résultats comporte quatre colonnes : chemin, type, valeur de JSON A et valeur de JSON B. Les chemins utilisent la notation JSONPath, par exemple $.user.name ou $.list[0].id. Un JSON complet des différences est également disponible sous le tableau et regroupe chaque différence dans un tableau structuré, que vous pouvez copier pour identifier les modifications. Les statistiques indiquent le nombre total de différences ainsi que les ajouts, suppressions, modifications et éléments inchangés ; les changements de type sont signalés séparément et ne sont pas fusionnés avec les modifications de valeur.
Les deux options de comparaison
L’option d’ignorer l’ordre des tableaux compare les tableaux comme des ensembles : [1,2] et [2,1] sont alors considérés comme identiques. Elle convient aux listes d’étiquettes ou de permissions dont l’ordre n’a pas d’importance. L’option d’ignorer les espaces en début et en fin de chaîne ignore les espaces et retours à la ligne situés aux extrémités des chaînes. Elle est utile lorsque deux fichiers de configuration diffèrent uniquement par leur formatage. Les options relancent immédiatement la comparaison et ne modifient pas les données saisies.
Comment comparer des fichiers JSON locaux
Passez à l’onglet de téléversement de fichiers, puis faites glisser deux fichiers .json dans les zones prévues à gauche et à droite, ou sélectionnez-les séparément. Les fichiers sont lus localement dans le navigateur avec FileReader. La limite est de 10 Mo par fichier. Dès que les deux côtés sont chargés, la comparaison démarre automatiquement, sans envoyer le contenu des fichiers au serveur.
Causes fréquentes des différences
Le renommage d’un champ d’API apparaît comme une suppression suivie d’un ajout au même emplacement. La modification d’une valeur par défaut apparaît comme une modification de valeur. Le mélange d’un booléen et d’une chaîne, par exemple true et la chaîne true, est détecté comme un changement de type. Une modification de l’ordre des éléments d’un tableau est détaillée élément par élément lorsque l’option d’ignorance de l’ordre n’est pas activée. Commencez par vérifier le chemin, puis le type et enfin la valeur pour identifier la cause. Si les deux données sont identiques, la zone de résultats indique directement qu’aucune différence n’a été trouvée.
JSON Diff ignore-t-il l’ordre des clés d’un objet ?
JSON Diff analyse les deux JSON comme des objets avant de les comparer récursivement. L’ordre des clés d’un objet ne crée donc pas de différence ; seuls les champs ajoutés, supprimés, modifiés ou dont le type change sont signalés.
Chaque différence indique son chemin JSONPath, par exemple $.user.name, afin de retrouver directement le champ concerné dans une réponse d’API ou dans le code.
- Analyse les JSON avant comparaison : l’ordre des clés d’un objet ne crée pas de différence
- Détecte les ajouts, suppressions, modifications de valeur et changements de type, avec le chemin JSONPath
- Les tableaux peuvent être comparés comme des ensembles : [1,2] et [2,1] sont alors identiques
- La liste des différences peut être copiée en texte brut avec les préfixes + / - / ~ / !
- Limite de 10 Mo par fichier lors de la comparaison de fichiers, avec comparaison automatique après chargement des deux côtés
- Traitement entièrement local dans le navigateur, sans envoi des données au serveur