logo
GeekFormat

JSON Diff

Compare 1
AncienOriginal JSON
1{
2 "name": "GeekFormat",
3~ "description": "面向开发者的免费在线工具集",
4~ "version": "1.0.0",
5 "features": [
6 "formatting",
7 "validation",
8~ "diff"
 
9 ],
10 "author": {
11 "name": "GeekFormat",
12 "url": "https://geekformat.com"
13 },
14 "stats": {
15~ "tools": 80,
16~ "languages": 18
17 },
18~ "active": true
19}
+1~6

Outil JSON Diff en ligne gratuit. Comparez deux objets JSON côte à côte avec mise en évidence des champs ajoutés, supprimés et modifiés. Formatage automatique avant comparaison ligne par ligne et caractère par caractère, comptage en temps réel des ajouts/suppressions/modifications, propose des vues texte et sémantique. Idéal pour les tests d'intégration API, la comparaison de fichiers de configuration et la résolution de problèmes de données de tests automatisés.

Recommandations connexes

Cas d'utilisation

  • Comparaison des différences entre les données de retour réelles et les données Mock attendues lors de l'intégration API
  • Les fichiers de configuration JSON de différents environnements (développement/test/production) doivent être comparés pour les changements de version
  • Résolution rapide des incohérences entre les données de réponse et les valeurs de base d'assertion dans les tests automatisés
  • Comparaison des modifications de structure de réponse des anciennes et nouvelles versions après mise à jour d'API tierces
  • Comparaison des différences de la même configuration ou du même modèle de données avant et après modifications lors des revues de code
  • Comparaison des réponses JSON aux requêtes normales et anormales lors de la résolution de problèmes en production
  • Vérification de la concordance entre les données source et cible lors de la synchronisation de données

Fonctionnalités

  • Comparaison approfondie des différences : formatage automatique avant comparaison récursive ligne par ligne et caractère par caractère, identification précise des ajouts, suppressions et modifications
  • Surlignage visuel : rouge/vert/jaune marquent clairement suppressions, ajouts et modifications, défilement synchronisé gauche/droite
  • Surlignage au niveau caractère : dans les lignes modifiées, les caractères spécifiques modifiés sont davantage surlignés pour une localisation plus fine
  • Formatage automatique : embellissement unifié des deux JSON avant comparaison, élimination automatique des perturbations dues à l'indentation et aux espaces
  • Double vue texte/sémantique : comparaison textuelle par ligne ou comparaison sémantique structurelle, basculable en un clic
  • Statistiques des différences : comptage en temps réel d'Ajouté/Supprimé/Modifié en bas, message "Identique" en cas de concordance complète
  • Comparaison multi-onglets : comparer plusieurs paires JSON simultanément sans interférence mutuelle
  • Partage et échange : génération de lien partageable en un clic, échange du contenu gauche/droit en un clic, copie de chaque côté en un clic
  • Confidentialité et sécurité : exécution entièrement locale dans le navigateur, aucune donnée envoyée, sécurisé même pour le traitement de retours contenant des clés

Comment utiliser

  1. Collez les deux contenus JSON dans les zones de saisie gauche et droite respectivement (l'outil formate automatiquement)
  2. Choisissez la vue texte ou la vue sémantique pour afficher les différences surlignées en rouge/vert/jaune
  3. Confirmez l'ampleur des changements à l'aide des statistiques Ajouté/Supprimé/Modifié en bas
  4. Copiez le contenu en un clic ou générez un lien partageable pour collaborer avec d'autres

FAQ

Comment trouver rapidement les différences entre deux fichiers JSON ?

Collez simplement les deux textes JSON dans les zones de saisie gauche et droite. L'outil formate automatiquement puis effectue une comparaison approfondie ligne par ligne et caractère par caractère. Le nouveau contenu est surligné en vert, le contenu supprimé en rouge, et les lignes modifiées affichent à la fois les anciennes et nouvelles valeurs tout en surlignant les caractères modifiés, vous aidant à localiser instantanément les différences de données.

Dois-je formater manuellement JSON avant la comparaison ?

Non. L'outil analyse et formate automatiquement les données JSON des deux côtés avant la comparaison (indentation de 2 espaces). Même si les indentations, espaces et sauts de ligne des deux JSON sont complètement différents, aucune différence dénuée de sens n'apparaîtra tant que le contenu des données est identique. Cela ignore automatiquement les perturbations causées par les espaces blancs.

Quelle est la différence entre la vue texte et la vue sémantique ?

La vue texte compare ligne par ligne selon la vue formatée et affiche intuitivement les ajouts, suppressions et modifications de chaque ligne, idéale pour parcourir rapidement les changements globaux. La vue sémantique se concentre davantage sur la comparaison par structure et champs JSON, vous aidant à comprendre quels champs ont changé au niveau des données. Les deux vues peuvent être basculées à tout moment en un clic.

Des ordres d'éléments de tableau différents seront-ils marqués comme différences ?

Oui. L'outil compare selon l'ordre du contenu formaté, des ordres d'éléments de tableau différents s'afficheront comme différences. Si vous ne vous souciez que de la concordance du contenu sans vous soucier de l'ordre, nous recommandons d'utiliser d'abord le tri par clés de l'outil de formatage JSON ou de trier les tableaux avant de comparer pour éviter les perturbations dues à l'ordre.

Pour quels scénarios de développement et de test spécifiques cet outil est-il adapté ?

Très adapté aux scénarios suivants : 1) Intégration API : comparaison des différences entre les réponses API réelles et les données Mock attendues ; 2) Gestion de configuration : comparaison des différences de fichiers de configuration entre différents environnements (développement/production) ; 3) Tests automatisés : comme outil auxiliaire pour les assertions de test afin de résoudre rapidement les incohérences de données ; 4) Mises à jour de version : comparaison des modifications de structure de réponse avant et après les mises à jour d'API tierces.

Quelle est la différence entre JSON Diff et le formatage JSON ?

Le formatage JSON organise un JSON difficile à lire en une structure hiérarchique lisible, tandis que JSON Diff compare les différences entre deux JSON. Les deux sont souvent utilisés ensemble : cet outil intègre déjà une étape de formatage et embellit automatiquement le contenu des deux côtés avant la comparaison, vous permettant de vous concentrer sur les différences elles-mêmes.

Les résultats de comparaison peuvent-ils être partagés ou copiés ?

Oui. L'outil prend en charge la compression et l'encodage du contenu actuel gauche et droit dans une URL pour générer un lien partageable. À l'ouverture, le destinataire voit la même scène de comparaison sans qu'aucune donnée ne soit téléchargée sur un serveur. Vous pouvez également copier en un clic le contenu de chaque côté pour les revues de code ou le suivi de problèmes.

Plusieurs comparaisons peuvent-elles être effectuées simultanément ?

Oui. L'outil prend en charge les comparaisons dans plusieurs onglets. Vous pouvez coller et comparer différentes paires JSON dans différents onglets, les onglets ne se gênant pas mutuellement. Pratique pour examiner simultanément les différences de plusieurs API ou configurations.

La comparaison compte-t-elle combien de modifications ont été apportées ?

Oui. La barre d'état inférieure compte en temps réel le nombre des trois types de différences : Ajouté, Supprimé et Modifié. Vous pouvez voir l'ampleur des changements en un coup d'œil. Si les deux JSON sont complètement identiques, le message "Identique" s'affiche.

Les données comparées sont-elles téléchargées sur un serveur ?

Non. Tous les formatages et comparaisons de différences s'exécutent entièrement localement dans votre navigateur, les données ne sont pas téléchargées sur des serveurs. Même lors de la comparaison de réponses API contenant des clés, des tokens ou des données utilisateur, c'est sécurisé. Après fermeture de la page, les données sont supprimées.

À propos de JSON Diff (Comparaison JSON)

JSON Diff fait référence à la comparaison de différences entre deux données JSON pour trouver les champs ajoutés, supprimés et modifiés. Dans le développement quotidien, nous avons souvent besoin de savoir "en quoi exactement deux JSON diffèrent" : ce qui a changé dans la structure de réponse avant et après les mises à jour d'API, où différent les configurations de deux environnements, dans quel champ les résultats réels des tests automatisés divergent des valeurs de base attendues. La vérification manuelle ligne par ligne est lente et sujette aux erreurs ; les outils JSON Diff peuvent automatiquement surligner les différences.

Les comparaisons de différences JSON suivent généralement deux approches. L'une est le "diff textuel" (textual diff) : JSON est formaté en texte multiligne standardisé puis comparé ligne par ligne de manière similaire à Git Diff, affichant intuitivement les ajouts, suppressions et modifications de chaque ligne. L'autre est le "diff sémantique/structurel" (structural diff) : JSON est analysé en une structure arborescente et les valeurs et types sont comparés un par un selon le chemin de champ (par ex. user.address.city), sans être influencés par des facteurs de formatage tels que l'ordre d'écriture des champs ou l'indentation. Cet outil propose à la fois la vue texte et la vue sémantique, commutables selon les besoins.

Pourquoi formater avant de comparer ? Parce que les mêmes données peuvent être formatées complètement différemment (une ligne vs plusieurs lignes, 2 espaces vs 4 espaces). Une comparaison directe du texte d'origine générerait un grand nombre de "fausses différences" dues aux écarts de formatage. Cet outil analyse et formate automatiquement les JSON des deux côtés avant comparaison pour éliminer les perturbations des espaces blancs, vous permettant de ne voir que les changements de données réellement significatifs.

Notez que l'ordre des clés dans les objets JSON n'a pas d'importance sémantique ({"a":1,"b":2} est équivalent à {"b":2,"a":1}), mais l'ordre des éléments dans les tableaux est significatif ([1,2] est différent de [2,1]). Ainsi, si vous ne vous souciez que de la concordance du contenu du tableau sans vous soucier de l'ordre, nous recommandons de trier les tableaux ou les clés avant comparaison pour éviter que les changements d'ordre soient incorrectement identifiés comme différences.

Tous les formatages et comparaisons de cet outil s'effectuent localement dans le navigateur, les données ne sont pas téléchargées sur un serveur ; il prend également en charge le surlignage au niveau caractère, le comptage des ajouts/suppressions/modifications, la comparaison simultanée dans plusieurs onglets et le partage de scènes de comparaison via URL. Adapté aux scénarios tels que l'intégration API, la comparaison de configuration, les assertions de test et les revues de code.

Tableau de référence rapide des types de différences JSON

Lors de la comparaison de deux JSON, les différences peuvent généralement être classées dans les catégories suivantes. Leur compréhension aide à juger rapidement la nature du changement.

Type de différenceMarquageDescription
Ajouté (Added)+ VertChamps ou éléments de tableau présents dans la nouvelle version mais absents de l'ancienne version.
Supprimé (Removed)− RougeChamps ou éléments de tableau présents dans l'ancienne version mais supprimés dans la nouvelle version.
Modifié (Modified)~ JauneLe champ existe toujours mais la valeur a changé, les anciennes et nouvelles valeurs s'affichent simultanément et les caractères modifiés sont surlignés.
Changement de type~ JauneLe type de la valeur du champ a changé, par ex. nombre en chaîne, objet en tableau. C'est une sorte de modification.
Aucun changementNormalLignes complètement identiques des deux côtés, pas de marquage spécial.

Prétraitements recommandés avant la comparaison

Pour obtenir des résultats de comparaison propres et significatifs, vous pouvez effectuer les prétraitements suivants selon les cas pour éviter les fausses différences.

ScénarioAction recommandée
Ordre des clés différentTrier par clé avant comparaison (ou utiliser la vue sémantique pour comparer au niveau des champs).
Ordre du tableau sans importanceTrier d'abord les tableaux par contenu pour éviter que les changements d'ordre soient considérés comme différences.
Indentation/espaces différentsAucun traitement nécessaire, cet outil formate automatiquement pour unifier la présentation.
Contient de grands IDs entiersVérifiez que les grands entiers des deux côtés sont transmis sous forme de chaînes pour éviter la perte de précision.
Un côté invalideUtilisez d'abord l'outil de validation/réparation JSON pour créer un JSON valide avant de comparer.

Privacy & Security

Tous les formatages et comparaisons de différences JSON de cet outil s'exécutent entièrement localement dans votre navigateur. Les données ne sont pas téléchargées sur des serveurs, ni enregistrées ou mises en cache à distance. Même lors de la comparaison de réponses API contenant des clés, tokens ou informations utilisateur, c'est sécurisé. Après fermeture ou actualisation de la page, les données sont supprimées.

Authoritative References

Troubleshooting

Les données sont pourtant identiques mais des différences sont signalées

La cause la plus fréquente est un ordre différent des éléments de tableau ou des différences difficiles à discerner dans les chaînes (espaces pleine chasse/demi-chasse, casse, espaces de fin, sauts de ligne \r\n vs \n). Triez d'abord les tableaux ou les clés avant de comparer ; cet outil formate déjà automatiquement et peut généralement exclure les fausses différences dues à l'indentation et aux espaces ordinaires.

Une erreur d'analyse s'affiche d'un côté de la comparaison / comparaison impossible

Cela signifie que le contenu de ce côté n'est pas un JSON valide (guillemets manquants, virgule finale superflue, commentaires inclus, parenthèses non fermées, etc.). Veuillez d'abord utiliser l'outil de validation/réparation JSON pour le traiter en JSON valide, puis revenez à la comparaison.

Trop de différences, presque chaque ligne est marquée en rouge/vert

C'est probablement parce que l'ordre des clés ou l'ordre des tableaux des deux ensembles de données est globalement différent, entraînant des décalages ligne par ligne. Il est recommandé de d'abord trier uniformément (objets par clé, tableaux par contenu) puis de comparer, ou passer à la vue sémantique pour afficher les champs réellement modifiés au niveau des champs.

Les grands nombres ne correspondent pas (ex. dernier chiffre de l'ID différent ou notation scientifique)

Les nombres JSON sont analysés selon la norme IEEE 754 en virgule flottante double précision. Les entiers grands dépassant 2^53 (IDs Snowflake, numéros de commande) perdent en précision, de sorte que des valeurs apparemment identiques des deux côtés sont en fait analysées comme des valeurs différentes. Lors de la transmission de grands entiers, ils doivent être enveloppés dans des chaînes, par ex. "id": "9007199254740993".

Les caractères chinois s'affichent sous forme \uXXXX, ce qui semble incohérent

Quand un côté utilise l'écriture d'échappement (\u4e2d\u6587) et l'autre du chinois en clair, le formatage peut présenter différemment. Les deux sont sémantiquement identiques mais textuellement différents et seront marqués comme différence. Vous pouvez uniformiser côté production si l'échappement doit être utilisé ou non (par ex. ensure_ascii=False en Python).