Guide des fonctionnalités macOSWindows

Comparez les fichiers structurés par leur signification et non par la position de la ligne

Comparez JSON, YAML, TOML, INI, les listes de propriétés, XML, CSV, OpenAPI et JSON Schema par clés, chemins, lignes et valeurs plutôt que par la position des lignes. Deux fichiers de formats de données différents, comme un fichier JSON et un fichier TOML, sont comparés selon leurs données. Les listes d’enregistrements sont associées automatiquement par un champ id, _id, uuid ou key, et les éléments XML par un attribut clé comme id ou name ; les nombres sont comparés selon leur valeur.

Aperçu des capacités

Comment puis-je utiliser les différences sémantiques structurées dans Diff Anything ?

Comparez JSON, YAML, TOML, INI, les listes de propriétés, XML, CSV, OpenAPI et JSON Schema par clés, chemins, lignes et valeurs plutôt que par la position des lignes. Deux fichiers de formats de données différents, comme un fichier JSON et un fichier TOML, sont comparés selon leurs données. Les listes d’enregistrements sont associées automatiquement par un champ id, _id, uuid ou key, et les éléments XML par un attribut clé comme id ou name ; les nombres sont comparés selon leur valeur.

Repérez les changements de code significatifs avec Smart Diff dans 117 langues de l’éditeur. Passez à Line Diff chaque fois que vous souhaitez un examen exact ligne par ligne. Les deux vues gardent la coloration syntaxique et l’édition à portée de main. Les règles d’exclusion laissent les horodatages, les identifiants, les commentaires ou les colonnes fixes hors d’une comparaison de texte, et Aligner ces lignes associe deux lignes à la main lorsque la correspondance automatique n’est pas celle souhaitée.

Diff Anything comparant deux fichiers JSON, avec des enregistrements utilisateur correspondant par identifiant et une valeur de rôle modifiée sélectionnée
Le mode sémantique répertorie les chemins et les valeurs modifiés. Ici, une règle de comparaison par identifiant correspond aux enregistrements utilisateur, donc une liste réorganisée affiche uniquement les changements réels. Afficher en taille réelle

Comment ça marche

Les deux fichiers sont analysés en données avant que quoi que ce soit ne soit comparé

Un fichier de configuration ou une définition API peut être réécrit par un outil sans qu’aucune valeur ne change : clés triées différemment, indentation élargie, attributs XML répertoriés dans un autre ordre. Une différence de ligne rapporte tout cela. Les modes structurés lisent d’abord les deux fichiers dans les données, de sorte que seules les différences dans les données elles-mêmes sont répertoriées.

Chaque résultat nomme l’emplacement de la modification, par exemple $.server.port, le type de modification (ajouté, supprimé, modifié ou un changement de type) et la valeur de chaque côté. Les listes d’enregistrements avec un identifiant unique, _id, uuid ou un champ clé sont appariées par ce champ, de sorte qu’un enregistrement inséré s’affiche comme ajouté plutôt que de décaler le reste. Lorsqu’un tableau contient les mêmes éléments dans un nouvel ordre, cela est signalé une fois comme une réorganisation plutôt que comme un changement à chaque position.

Trois vues montrent le même résultat de différentes manières. La sémantique est la liste des différences. L’arborescence affiche les deux documents sous forme d’arborescences extensibles l’une à côté de l’autre. Raw affiche les deux côtés sous forme de texte normalisé. Les chemins de recherche filtrent la liste, décocher la case Inchangé masque les valeurs qui correspondent et Copier le chemin place l’emplacement sélectionné dans le presse-papiers.

Formats

Ce que lit chaque mode structuré

Choisissez le mode dans le menu du mode Comparaison, ou laissez Auto le choisir parmi l’extension et le contenu :

  • JSON : objets comparés par clé, nombres par valeur, commentaires autorisés et avertissement lorsqu’une clé apparaît deux fois. Les règles sémantiques peuvent masquer le bruit attendu.
  • YAML : comparé en tant que données, donc les commentaires et la mise en page ne comptent jamais comme des modifications, avec les mêmes règles sémantiques que JSON.
  • TOML et INI : tables, sections, clés et valeurs comparées en tant que données, avec les mêmes règles sémantiques. Les valeurs INI sont du texte et une clé sans valeur est signalée comme telle.
  • Listes de propriétés : XML et plists binaires comparés par leurs données, également entre eux ou avec JSON, YAML ou TOML. Les dates sont comparées au texte ISO 8601 et aux données volumineuses selon leur longueur et SHA-256.
  • Deux formats de données différents, comme un fichier JSON et un fichier TOML, sont comparés par leurs données, chacun lu dans son propre format, avec une note qui l’indique.
  • XML : éléments, attributs et texte, avec des emplacements XPath lisibles. Les préfixes d’espace de noms correspondent à l’espace de noms vers lequel ils pointent. Les éléments répétés sont mis en correspondance par leur nom et un attribut clé tel que l’identifiant ou le nom, et les éléments non ordonnés ignorent l’ordre des enfants sous un parent que vous répertoriez.
  • CSV : lignes et cellules, avec le délimiteur détecté pour chaque fichier (virgule, tabulation, point-virgule ou barre verticale) sauf si vous en saisissez un dans la zone Délimiteur, et lignes appariées par index de ligne ou par colonnes que vous choisissez dans le menu Clé et sous les options CSV.
  • Schéma API : schéma OpenAPI et JSON dans JSON ou YAML, plus les types GraphQL et les instructions SQL CREATE TABLE. Les modifications incompatibles probables portent un code de règle et apparaissent sous le filtre Rupture.

Copie des valeurs

Déplacement d’une valeur d’un fichier à l’autre

Pour faire apparaître une valeur, sélectionnez-la dans la liste et cliquez sur le bouton fléché qui pointe vers le fichier que vous souhaitez modifier : Droite → gauche ou Gauche → droite. Pour en déplacer plusieurs à la fois, marquez-les Révisés dans le volet Différences et utilisez Appliquer la révision à gauche ou Appliquer la révision à droite.

JSON, TOML, INI, liste de propriétés XML et HTTP Les cibles de réponse sont modifiées sur place, de sorte que leurs commentaires, leur indentation et leur disposition sont conservés ; une liste de propriétés binaires est comparée mais jamais écrite. Les cibles YAML et XML sont reconstruites à partir de leurs données, et l’application demande d’abord une confirmation car les commentaires et la mise en page ne sont pas conservés ; un schéma API dans JSON conserve sa présentation et un schéma dans YAML est reconstruit après confirmation. Annuler annule la modification et rien n’est écrit sur le disque jusqu’à ce que vous choisissiez Enregistrer les fichiers modifiés. Les résultats CSV n’ont pas de boutons de copie ; ils sont pour examen.

Gratuit et Pro

Quelle part du forfait gratuit couvre

JSON est complet sur le plan gratuit, y compris toutes les règles sémantiques et la copie des valeurs. Les schémas YAML, TOML, INI, liste de propriétés, XML, CSV et API sont marqués Aperçu dans le menu mode, et YAML, TOML, INI et les listes de propriétés peuvent utiliser les mêmes règles sémantiques : chacune affiche son résultat complet pour les fichiers jusqu’à 5 Mo par côté, sauf CSV, qui affiche les 100 premières lignes. Tous comptent pour 10 nouvelles sessions de comparaison par jour.

Pro supprime ces limites, enregistre vos règles et notes de révision dans un profil, exporte des rapports et exécute tous les modes structurés à partir de la ligne de commande. Les codes de règles de schéma API constituent une aide à la révision : les références $ref ne sont pas résolues et les schémas de demande et de réponse sont vérifiés avec les mêmes règles. Lisez donc chaque élément signalé avant d’agir dessus.

Dans le workflow

Comment l’utiliser

  1. Ouvrir les deux fichiers

    Choisissez l’ancienne et la nouvelle version. Consultez le menu du type de comparaison pour voir quel mode a été sélectionné automatiquement.

  2. Supprimer le bruit attendu

    Ajoutez des règles sémantiques pour JSON, YAML, TOML, INI ou des listes de propriétés, des éléments non ordonnés XML ou une clé CSV et des colonnes ignorées pour les valeurs qui devraient différer.

  3. Revoir la liste sémantique

    Filtrez par Ajouté, Supprimé, Modifié ou Types et ouvrez l’arborescence lorsque vous avez besoin de la structure environnante.

  4. Copiez ce qui appartient

    Marquez les modifications que vous acceptez comme révisées, appliquez-les à l’autre côté et enregistrez.

Utile en pratique

Quand l’utiliser

Manuel associé

Choisir le bon type de comparaison

Choisir les sources, comprendre la détection automatique et prendre le type de comparaison qui répond à votre question.

Lire le guide

Réponses directes

Questions sur les différences structurées sémantiques.

La modification de l’ordre des touches crée-t-elle des différences ?

Non. Les objets sont comparés clé par clé et les attributs XML par nom, de sorte que les mêmes données dans un autre ordre sont comparables.

Quels modes structurés ont des paramètres ?

JSON, YAML, TOML, INI et la liste de propriétés ont des règles sémantiques, XML a des éléments non ordonnés, CSV a le menu Clé et les options CSV, et la réponse HTTP a des en-têtes ignorés. Le schéma API se compare aux règles fixes.

Puis-je comparer un fichier JSON avec un fichier TOML ou YAML ?

Oui. Deux fichiers de formats de données différents sont comparés par leurs données, chacun lu dans son propre format, donc une configuration convertie d’un format à un autre affiche uniquement les valeurs qui ont changé. Copier une modification l’écrit dans le propre format de la cible, ou la refuse, avec la raison pour laquelle ce format ne peut pas contenir la valeur.

Le mode Schéma API permet-il une vérification complète de la compatibilité ?

Non. Il étiquette les modifications qui interrompent souvent les clients, comme une opération supprimée ou un nouveau champ obligatoire. Il ne résout pas les références $ref, donc chaque élément signalé a toujours besoin d’une personne pour le vérifier.

Gratuit & Pro : ce qui est inclus

Disponible sur le Mac App Store et le Microsoft Store. L’utilisation de la version gratuite de l’app vous permet d’essayer tous les moteurs de comparaison pour des fichiers jusqu’à 5 Mo par côté et 10 nouvelles sessions de comparaison par jour local ; les aperçus de collection affichent les 100 premiers éléments, les comparaisons binaires les 100 premiers octets de différences et les aperçus PDF des 3 premières pages. La comparaison du texte brut, des notebooks JSON et Jupyter est complète et l’ouverture de fichiers à partir du Finder ou de l’Explorateur de fichiers, des liens diffanything:// et AppleScript est gratuite. La CLI gratuite prend en charge le texte, JSON et les notebooks. Un achat Pro unique supprime les limites d’aperçu et de session et déverrouille des sources plus volumineuses dans les limites techniques, les profils et l’historique enregistrés, l’enregistrement des instantanés de dossiers, l’exportation et l’impression de rapports, l’exportation de correctifs JSON, l’application de correctifs, la fusion à trois voies et la résolution des conflits, le pilote de fusion et l’outil de fusion Git, la synchronisation des dossiers, les manifestes par lots, les préprocesseurs de confiance et chaque mode CLI.

Suivant

Voir toutes les fonctionnalités de Diff Anything.

Retour aux fonctionnalités