Réponse directe
En quoi la comparaison sémantique JSON diffère-t-elle d’une comparaison textuelle ?
Diff Anything analyse JSON avant de le comparer, de sorte que le formatage et l’ordre des propriétés ne créent pas de modifications de ligne inutiles. Les listes d’enregistrements correspondent automatiquement à un champ d’identification, les nombres sont comparés par valeur et l’application d’une modification conserve les commentaires et la présentation du fichier cible. Les profils Pro peuvent conserver les chemins ignorés, le comportement des tableaux à clé ou non ordonnés, les règles de casse, les tolérances numériques et l’état de révision.

Bruit de formatage
L’ordre et l’espacement des touches ne sont pas modifiés.
Une différence de ligne de deux fichiers JSON affiche souvent des centaines de modifications après qu’un sérialiseur trie les clés différemment ou modifie l’indentation. Diff Anything analyse d’abord les deux documents et compare les valeurs, de sorte que les mêmes données écrites dans un ordre ou une présentation différente ne produisent aucune différence.
Lorsqu’une valeur change de type, par exemple de la chaîne "1" au chiffre 1, elle est signalée comme un changement de type au lieu d’un changement de valeur ordinaire. Numbers sont comparés par valeur, donc 1, 1,0 et 1e0 sont égaux, et les nombres trop grands ou trop précis pour l’arithmétique ordinaire conservent leurs chiffres exacts. Pour traiter les petites différences comme étant égales, définissez une tolérance numérique supérieure à 0.
Les fichiers avec des commentaires // ou /* */ ou des virgules finales sont acceptés. Si un document répète une clé, la dernière valeur est utilisée et un avertissement nomme le doublon. Lorsqu’un seul fichier répète la clé, cet avertissement compte comme une différence.
Tableaux
Faites correspondre les éléments du tableau par une clé plutôt que par position.
Les tableaux sont l’endroit où la plupart des différences JSON tournent mal. Lorsque chaque élément d’un tableau est un objet avec un champ identifiant, _id, uuid ou clé unique, Diff Anything associe automatiquement les éléments par ce champ. Les emplacements se lisent alors comme $.users[id=2].role, un enregistrement inséré est signalé comme ajouté au lieu de décaler chaque enregistrement qui le suit, et une liste dont les enregistrements n’ont été déplacés qu’affiche une note, telle que "Les membres du tableau à $.users ont été réorganisés".
Les autres tableaux sont comparés par index. Si les deux contiennent les mêmes articles dans un ordre différent, le résultat indique une réorganisation au lieu d’un changement à chaque position. Pour les listes d’enregistrements identifiés par un autre champ, ajoutez une règle de clés de tableau telle que $.orders = orderNumber et les emplacements se lisent comme $.orders[orderNumber=1042].total. Lorsque chaque objet partage un champ unique tel que le nom, les règles recommandées le proposent sous forme de suggestion en un clic, par exemple « Comparez $.servers par nom ».
Si une clé est manquante dans un élément ou répétée, une règle de clés de tableau ne peut pas être utilisée et la comparaison revient aux index de tableau avec un avertissement. Pour les listes où l’ordre n’a pas d’importance, comme les balises, ajoutez le chemin aux chemins de tableau non ordonnés.
Règles sémantiques
Masquez les champs que vous prévoyez modifier.
Ouvrez les règles sémantiques pour indiquer à la comparaison ce qu’il faut laisser de côté. Ignorer les chemins supprime les champs volatils tels que $.metadata.generatedAt. Ignorer la casse dans les chemins compare les valeurs de chaîne sur ces chemins sans casse. La tolérance numérique traite les nombres compris dans une différence absolue fixe comme égaux.
Un chemin est soit exact, soit se termine par .* pour couvrir tout ce qui se trouve en dessous. Les règles recommandées examinent le résultat actuel et suggèrent des clés de tableau, un ordre ignoré, des règles de casse, des champs volatiles tels que GeneratedAt et des tolérances numériques, afin que vous puissiez ajouter une règle en un seul clic. Les règles font partie du plan gratuit ; les enregistrer dans un profil pour la prochaine exécution nécessite Pro.
- Ignorer les chemins
- Chemins de tableau non ordonnés
- Ignorer la casse au niveau des chemins
- Clés de tableau (un chemin = clé par ligne)
- Tolérance numérique
Appliquer et CLI
Copiez une modification dans l’autre fichier.
Sélectionnez une différence et utilisez Droite → gauche ou Gauche → droite pour la copier dans l’autre fichier. Seule cette valeur est écrite : la cible conserve ses commentaires, ses virgules finales, son indentation et ses fins de ligne.
Sur Windows, la ligne de commande compare JSON sur le plan gratuit avec les règles par défaut, et --exit-code renvoie 1 lorsque les fichiers diffèrent. Les règles sémantiques définies dans l’application ne sont pas lues par la ligne de commande. Avec Pro, Exporter écrit un correctif JSON (RFC 6902) ou un correctif de fusion JSON (RFC 7386) qui transforme le document de gauche en celui de droite, et Copier en tant que correctif JSON en place un dans le presse-papiers.
Idéal pour
Où s’inscrit ce flux de travail.
- Fichiers de configuration dont l’ordre des clés change
- Réponses API avec champs volatiles ou collections non ordonnées
- JSON sensible qui doit rester sur la machine locale
Aucun compte, service de comparaison cloud, analyse ou télémétrie.
Capacités pertinentes
Ce que Diff Anything apporte au travail.
Flux de travail pratique
De la configuration à un résultat révisé.
Ouvrez les deux fichiers JSON
Choisissez les fichiers ou collez JSON. Les ouvre automatiquement en mode JSON dans l’arborescence ; l’onglet Sémantique répertorie toutes les différences.
Supprimer le bruit connu
Ajoutez Ignorer les chemins pour les horodatages et les identifiants de demande, ou acceptez une suggestion des règles recommandées.
Clé vos tableaux
Les enregistrements avec un champ id, _id, uuid ou clé sont automatiquement appariés. Pour les autres enregistrements, ajoutez une règle Array Keys ou acceptez une suggestion telle que Compare $.servers by name.
Vérifier et copier les modifications
Filtrez par Ajouté, Supprimé, Modifié ou Types, marquez les éléments examinés et copiez les valeurs souhaitées.
Utile en pratique
Réponses directes
Questions sur l’outil de comparaison JSON.
En quoi la comparaison sémantique JSON diffère-t-elle d’une comparaison textuelle ?
Diff Anything analyse JSON avant de le comparer, de sorte que le formatage et l’ordre des propriétés ne créent pas de modifications de ligne inutiles. Les listes d’enregistrements correspondent automatiquement à un champ d’identification, les nombres sont comparés par valeur et l’application d’une modification conserve les commentaires et la présentation du fichier cible. Les profils Pro peuvent conserver les chemins ignorés, le comportement des tableaux à clé ou non ordonnés, les règles de casse, les tolérances numériques et l’état de révision.
Diff Anything ignore-t-il l’ordre des clés JSON ?
Oui. Les objets sont comparés par clé, donc les mêmes clés dans un ordre différent sont égales. Les clés elles-mêmes sont sensibles à la casse.
Peut-il comparer des tableaux JSON dont les éléments sont dans un ordre différent ?
Oui. Les enregistrements avec un identifiant unique, _id, uuid ou un champ clé sont automatiquement associés par celui-ci. Pour les autres enregistrements, ajoutez une règle de clés de tableau telle que $.servers = name ; Les règles recommandées en suggèrent une lorsque chaque élément possède un champ partagé unique. Pour les listes simples, ajoutez le chemin sous Chemins de tableau non ordonnés. Les autres tableaux sont comparés par index et un tableau dont les éléments ont uniquement été déplacés est signalé comme réorganisé.
Quelle syntaxe de chemin les règles d’exclusion utilisent-elles ?
Les chemins commencent à $, par exemple $.metadata.generatedAt. Un chemin se terminant par .* couvre également tout ce qui se trouve en dessous. Les caractères génériques au milieu d’un chemin, [*] et la descente récursive (..) ne sont pas pris en charge.
Les règles de comparaison JSON font-elles partie du forfait gratuit ?
Oui. La comparaison sémantique JSON et ses règles sont incluses dans le forfait gratuit, dans les limites de 5 Mo par fichier et de 10 comparaisons par jour. L’enregistrement des règles dans un profil et l’exportation des rapports nécessitent Pro.
Aller plus loin
Choisir les sources, comprendre la détection automatique et prendre le type de comparaison qui répond à votre question.
Lire Choisir le bon type de comparaisonGratuit & 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.