IA sur votre appareil : performant et privé.

Comparateur Diff JSON

Diff JSON : appariement de tableaux, filtres, correctif

  • Tout sur votre appareil
  • Tableaux appariés, pas déversés
  • Export en correctif JSON ou Markdown

Déposez deux fichiers JSON, ou collez ci-dessous

JSON, JSONC, GeoJSON, source maps, texte · Déposez une paire, elle est appariée par nom

Réglages de comparaison
Vue
Vue
Ce qui compte comme différence

Chaque option relâche une chose précise. Le rapport consigne celles qui étaient actives.

Tolérance numérique

À quel point deux nombres doivent être proches pour compter comme égaux.

Apparier les éléments

Nommez un champ unique et les éléments s'alignent sur sa valeur plutôt que sur leur position.

Ignorer ceci

Séparés par des virgules. Les chemins acceptent * pour une étape et ** pour un nombre quelconque.

Limites

Gratuit : une paire, jusqu'à 10.0 MB par côté. Pro porte cela à ce que votre appareil peut gérer et compare jusqu'à 50 paires à la fois.

Ajoutez deux documents à comparer

Comment comparer deux fichiers JSON

  1. 1Ajoutez le premier documentCollez du JSON dans le cadre de gauche, ou déposez un fichier .json sur la zone de dépôt. Déposez deux fichiers d'un coup et ils sont appariés automatiquement : des noms comme users.before.json et users.after.json sont reconnus, et le côté le plus ancien passe à gauche.
  2. 2Ajoutez le second documentCollez ou déposez le second document dans le cadre de droite. Utilisez Inverser si les deux côtés se sont retrouvés à l'envers.
  3. 3Lisez les différencesLa comparaison s'exécute à la frappe. Basculez entre les vues côte à côte, en ligne et par chemin ; les sections inchangées restent repliées jusqu'à ce que vous les ouvriez, et les boutons précédent et suivant sautent d'une modification à l'autre.
  4. 4Réglez ce qui compte comme différenceIgnorez l'ordre des tableaux, la casse ou les espaces ; fixez une tolérance numérique ; nommez des clés ou des chemins à sauter ; ou appariez les éléments par un champ id pour qu'une liste réordonnée se lise comme réordonnée et non comme réécrite.
  5. 5Exportez le résultatCopiez le résumé, téléchargez un correctif JSON RFC 6902 qui transforme le document de gauche en celui de droite, ou téléchargez un rapport Markdown à coller dans une pull request ou un ticket.

Ce que propose cet outil de diff JSON

Trouvez les changements exacts entre deux objets JSON, y compris les clés ajoutées, supprimées et modifiées, avec un filtrage rapide et des diagnostics clairs. Collez ou déposez deux documents et la comparaison s'exécute sur votre appareil à la frappe : chaque différence est signalée par son chemin exact, les tableaux sont appariés élément par élément au lieu d'être déversés en bloc, et le résultat peut sortir en correctif JSON, en rapport Markdown ou en résumé à copier.

  • Des différences au chemin exact — Chaque modification est adressée par un JSON Pointer : users/1/name désigne ce champ de cet élément et rien d'autre. Une clé contenant littéralement un point ou une barre oblique est échappée plutôt que confondue avec le chemin qui l'entoure.
  • Trois façons de le lire — Côte à côte pour parcourir, en ligne pour une vue de type correctif, ou une liste plate par chemin pour aller droit à ce qui a bougé. Les sections inchangées restent repliées jusqu'à ce que vous en ouvriez une.
  • Quatre types de modification — Ajouté, supprimé, modifié et type modifié. Une valeur qui passe de "3" à 3 est signalée à part, car c'est la modification la plus susceptible de casser ce qui lira le document ensuite.
  • Des exports qui servent — Un correctif JSON RFC 6902 que d'autres outils peuvent appliquer, un rapport Markdown pour une pull request, ou un résumé simple pour un message. La page qu'il remplace n'exportait rien du tout.

Comment les tableaux sont appariés

C'est ce qui sépare un diff JSON utile d'un diff pénible. Comparer deux tableaux position par position ne fonctionne que tant que rien n'a été inséré ni supprimé : ajoutez un élément en tête d'une liste de mille et tous les suivants s'alignent sur le mauvais voisin, si bien qu'une modification d'un élément est signalée comme mille.

Les tableaux sont donc alignés avant d'être comparés, selon celle des quatre stratégies qui convient. Celle qui a servi est affichée à côté du résumé, car la première question que l'on se pose devant un diff de tableau est pourquoi deux éléments donnés ont été appariés.

  • Par id — Nommez un champ sous Apparier les éléments et les éléments s'alignent sur sa valeur. Une collection revenue d'une API dans un autre ordre se lit alors comme réordonnée, seul l'enregistrement réellement modifié étant signalé. Cette stratégie n'est employée que si tous les éléments portent le champ et qu'aucune valeur ne se répète : une clé non unique produirait un appariement assuré, propre et faux, il est donc refusé plutôt que deviné.
  • Par plus longue sous-séquence commune — Le comportement par défaut. Le préfixe et le suffixe communs sont appariés en premier, puis le milieu est aligné pour que le moins d'éléments possible comptent comme insérés ou supprimés. Une insertion est un ajout ; une suppression est un retrait ; tout le reste demeure aligné.
  • Comme un ensemble — Activez Ignorer l'ordre des tableaux et les deux listes sont comparées comme des collections non ordonnées : les éléments qui n'ont fait que se déplacer ne sont plus des différences.
  • Par position — La réponse honnête pour deux listes n'ayant presque rien en commun, où tout appariement est arbitraire et où prétendre le contraire n'ajoute que du bruit.

Les options expliquées

La comparaison par défaut est stricte : chaque valeur, chaque type et chaque position de tableau doit correspondre. Chaque option ci-dessous relâche une chose précise, et le rapport consigne celles qui étaient actives, si bien qu'un résultat peut toujours être relu plus tard.

  • Ignorer l'ordre des tableaux — Traiter les tableaux comme des collections non ordonnées. Utile pour les listes d'étiquettes, les jeux de permissions et tout ce dont l'ordre ne signifie rien.
  • Ignorer la casse — Comparer les chaînes sans tenir compte des majuscules. Utile pour les libellés et les valeurs d'énumération dont le style a changé mais pas le sens.
  • Ignorer les espaces — Rogner les chaînes et réduire les suites d'espaces avant de comparer, pour qu'une description remise en forme ne se lise pas comme une réécriture.
  • Tolérance numérique — Choisissez à quel point deux nombres doivent être proches pour compter comme égaux, de l'exact jusqu'à 1. Réglée sur 0,0001, le bruit d'arrondi disparaît alors qu'un vrai changement de prix, non.
  • Ignorer des clés — Nommez des clés — updatedAt, requestId, etag — et elles sont sautées partout où elles apparaissent, à n'importe quelle profondeur. C'est ce qui transforme deux instantanés d'API en un diff lisible.
  • Ignorer des chemins — Sauter un emplacement précis plutôt qu'un nom. Les jokers sont acceptés : /users/*/lastSeen saute ce champ pour tous les utilisateurs, et /meta/** saute tout ce qui se trouve sous meta.
  • Autoriser les commentaires et virgules finales — Accepte le JSONC, pour comparer les fichiers de configuration tels qu'ils sont écrits. Déposer un fichier .jsonc l'active pour vous.
  • Comparer à la frappe — Actif par défaut. Désactivez-le sur de très gros documents si vous préférez comparer à la demande ; le bouton indique alors combien de résultats sont périmés.

Les chemins, et pourquoi ce sont des JSON Pointers

Chaque différence porte un JSON Pointer RFC 6901 — /users/1/name plutôt que users.1.name. La distinction compte plus qu'il n'y paraît, car un chemin construit en joignant des clés par des points devient ambigu dès qu'une clé en contient un.

Un document avec une clé nommée littéralement a.b et un document avec un a imbriqué contenant b produisent le même chemin pointé : deux emplacements réellement différents revendiquent la même adresse et aucun ne peut être résolu jusqu'à un nœud. Un pointer échappe le séparateur au lieu de le réserver : ~ devient ~0 et / devient ~1, si bien que chaque chemin résout vers un seul endroit. C'est ce qui rend le correctif exporté applicable, les boutons de saut possibles, et le résultat exploitable par un autre outil.

  • À l'écran — Les chemins sont affichés sous une forme plus lisible — $.users[1].name — parce que c'est ce qui se lit le mieux. C'est le pointer qui est exporté.
  • Dans le correctif — Chaque opération est adressée par son pointer, ce qui fait du fichier un correctif RFC 6902 standard et non quelque chose que seul cet outil comprend.

Exporter une comparaison

Un diff sert généralement de preuve pour autre chose — une revue, un ticket, un contrôle de déploiement — il doit donc pouvoir quitter la page. Trois exports couvrent les cas, et les trois sont disponibles sur le plan gratuit.

  • Correctif JSON (RFC 6902) — Une liste standard d'opérations add, remove et replace qui transforme le document de gauche en celui de droite. Les opérations sur tableau sont ordonnées pour que les indices restent valides au fil de l'application : d'abord tout ce qui est à l'intérieur d'un élément, puis les suppressions depuis la fin, puis les insertions depuis le début.
  • Rapport Markdown — Un tableau de synthèse, les réglages utilisés, et une ligne par différence avec le chemin, le type de modification et les deux valeurs. Les valeurs contenant une barre verticale sont échappées, une ligne de tableau ne peut donc jamais se scinder en mauvaises colonnes.
  • Résumé à copier — Une liste en texte brut avec les préfixes +, - et ~, pour un message ou une note de commit.
  • Un ZIP pour le lot — Avec Pro, chaque comparaison de la file exporte son rapport et son correctif dans une seule archive.

Clés en double, et autres choses que JSON dissimule

JSON autorise un objet à déclarer deux fois la même clé. Tous les analyseurs qui existent l'acceptent et conservent silencieusement la dernière valeur, ce qui signifie que deux documents peuvent différer sur une clé qu'aucune comparaison ne pourrait jamais voir : la différence a disparu avant que la comparaison commence.

Les deux côtés sont examinés à la recherche de clés répétées et l'outil vous dit laquelle et où. L'examen s'exécute après l'apparition du résultat, il ne retarde donc jamais la réponse. Deux autres cas discrets sont traités de la même façon : les nombres sont comparés par valeur et non par la manière dont ils sont écrits, si bien que 1, 1.0 et 1e0 sont une seule valeur et que -0 égale 0 ; et les clés d'un objet sont comparées comme un ensemble, donc réordonner les clés d'un objet n'est pas une modification.

  • La même clé deux fois — Signalée par un avertissement nommant la clé et son emplacement, du côté où elle apparaît.
  • Nombres écrits autrement — 1 et 1.0 sont la même valeur et ne sont pas signalés comme une modification.
  • Clés dans un autre ordre — Les objets sont non ordonnés par définition, un objet réordonné se compare donc comme identique.
  • N'importe quelle racine, pas seulement un objet — Un tableau, une chaîne, un nombre, true, false ou null à la racine se comparent normalement.

Ce que vous pouvez comparer

L'outil ouvre exactement les formats ci-dessous et refuse tout le reste au moment où vous choisissez le fichier, plutôt que de le laisser atteindre l'analyseur et échouer. Un fichier refusé est nommé, ainsi que l'outil qui le convertit.

  • JSON, GeoJSON, source maps, texte brut — .json, .geojson, .map et .txt s'ouvrent directement. Les fichiers sont reconnus à l'extension, non au type que votre système annonce — lequel est souvent inexistant.
  • JSONC — .jsonc s'ouvre en acceptant automatiquement les commentaires et les virgules finales. L'option peut aussi être activée à la main pour un .json qui en contient.
  • YAML et XML — Refusés, avec un lien vers le convertisseur YAML vers JSON ou XML vers JSON. Convertissez d'abord, comparez ensuite.
  • CSV et Excel — Refusés, avec un lien vers CSV vers JSON ou Excel vers JSON.

Vitesse, et ce qui se passe sur les gros documents

La comparaison s'exécute hors du fil principal, la page continue donc de répondre pendant le traitement et Annuler annule vraiment — y compris pendant la phase la plus lente et pas seulement entre deux étapes. La progression est réelle : elle compte les nœuds parcourus, pas les secondes écoulées.

La liste de résultats est affichée par fenêtre plutôt que construite en entier. Une comparaison produisant des milliers de différences ne dessine que les lignes à l'écran, et c'est pourquoi un très gros diff défile sans à-coups au lieu de figer l'onglet pendant la création de dizaines de milliers d'éléments. Les sections inchangées ne sont même pas construites tant que vous n'en ouvrez pas une.

  • À la frappe — Les modifications sont regroupées en une seule comparaison plutôt qu'une par touche, et une seule s'exécute à la fois.
  • Annuler — S'arrête en une fraction de seconde, à n'importe quel moment du traitement.
  • Les compteurs restent exacts — Au-delà de 100 000 différences la liste cesse de croître mais pas les totaux, et la page indique que la liste a été tronquée. Un résumé qui sous-déclarerait en silence serait pire que pas de résumé du tout.

Une paire de 10 Mo est analysée, comparée et produit son correctif en bien moins d'une seconde, hors du fil principal, de sorte que la page reste réactive pendant le traitement.

Pourquoi utiliser un diff JSON ?

Les fichiers de configuration, les réponses d'API et les données exportées changent d'une version à l'autre, et la partie intéressante n'est presque jamais visible dans le texte brut. Une comparaison structurelle dit exactement quelles clés ont été ajoutées, supprimées ou retypées sans lire aucun des deux documents, ce qui la rend utile dans une revue, un rapport de bogue ou un audit.

  • Des revues plus rapides — Repérez les changements structurels dans les configurations et les payloads sans lecture ligne à ligne, et collez le rapport Markdown directement dans la pull request.
  • Contrôle de régression — Comparez une réponse attendue à une réponse réelle, ignorez les champs qui changent toujours, et ne voyez que ce qui a réellement bougé.
  • Migrations et audits — Confirmez qu'une transformation a conservé tous les champs qu'elle devait garder, et produisez un correctif comme trace de ce qu'elle a changé.
  • Rien ne quitte votre appareil — Identifiants, dossiers clients et payloads internes sont comparés là où ils se trouvent déjà : rien n'est téléversé et rien n'est stocké.

Limites et ce que Pro change

Le plan gratuit est limité en échelle, jamais en fonctionnalités : toutes les options de comparaison, les trois vues et tous les exports d'une paire fonctionnent gratuitement. Pro relève le plafond et ajoute le lot.

  • Gratuit — Une paire à la fois, jusqu'à 10 Mo par côté. Toutes les options, les trois vues, et les exports correctif JSON, Markdown et résumé.
  • Pro — Des documents jusqu'à ce que votre appareil peut gérer, et jusqu'à 50 paires en file — appariées par nom, avec tous les rapports et correctifs dans une seule archive ZIP.
  • Si un fichier est trop gros — Le refus indique la taille réelle et la limite, et renvoie vers le Minificateur JSON : un document indenté à deux espaces n'est souvent que de l'indentation, et le minifier suffit fréquemment.

Questions frequentes

Comment fonctionne l'outil de diff JSON ?

Collez ou déposez deux documents JSON et la comparaison s'exécute sur votre appareil à la frappe. Les deux côtés sont analysés, puis parcourus ensemble clé par clé et élément par élément, et chaque différence est signalée par son chemin exact : ajouté à droite, supprimé à gauche, valeur modifiée ou type modifié. Les compteurs donnent les totaux et vous pouvez lire le résultat côte à côte, en ligne, ou comme une liste plate de chemins.

Mes données sont-elles en sécurité ?

Oui. Les deux documents sont lus et comparés entièrement sur votre appareil : rien n'est téléversé, rien n'est stocké et aucune copie n'est envoyée où que ce soit. La comparaison continue de fonctionner réseau coupé une fois la page chargée, ce qui est le moyen le plus simple de le vérifier vous-même.

Comment les tableaux et les objets imbriqués sont-ils comparés ?

Les objets imbriqués sont comparés clé par clé à n'importe quelle profondeur. Les tableaux sont appariés élément par élément plutôt que comparés en bloc : modifier un champ d'un élément dans une liste de mille est signalé comme une seule modification au chemin de cet élément, et non comme « le tableau a changé ». Insérer un élément est signalé comme un seul ajout, pas comme le déplacement de tous les suivants. Si vos éléments portent un id, indiquez-le sous Apparier les éléments et les listes réordonnées s'aligneront par id plutôt que par position.

Que se passe-t-il si l'un de mes JSON est invalide ?

Les deux côtés sont vérifiés, vous êtes donc informé des deux problèmes en même temps plutôt que d'en corriger un et de découvrir l'autre. Chaque erreur donne la ligne et la colonne, le texte alentour avec un accent circonflexe sous l'endroit exact, et des liens vers le Formateur et le Validateur JSON. Si le fichier n'a échoué que parce qu'il contient des commentaires ou une virgule finale, l'outil le dit et propose de les accepter.

Puis-je exporter les différences ?

Oui, de trois façons. Copier le résumé place dans le presse-papiers une liste en texte brut de chaque modification. Télécharger le correctif JSON fournit un correctif RFC 6902, un fichier standard que d'autres outils peuvent appliquer pour transformer le document de gauche en celui de droite. Télécharger Markdown produit un rapport avec un tableau de synthèse et une ligne par modification, prêt à coller dans une pull request ou un ticket. Avec Pro, un lot de comparaisons se télécharge en un seul ZIP.

Peut-il comparer des fichiers de configuration avec commentaires, ou des tableaux JSON à la racine ?

Les deux. Activez Autoriser les commentaires et virgules finales pour comparer tsconfig.json, .vscode/settings.json, devcontainer.json et tout ce qui est écrit en JSONC — déposer un fichier .jsonc active l'option pour vous. La racine de votre document peut être tout ce que JSON permet : un objet, un tableau, une chaîne, un nombre, true, false ou null. Une réponse d'API qui renvoie un tableau nu se compare exactement comme un objet.

Quelles sont les limites de taille et qu'apporte Pro ?

La version gratuite compare une paire de documents jusqu'à 10 Mo par côté, avec toutes les options de comparaison et tous les exports d'une paire. Pro porte la taille à ce que votre appareil peut gérer et permet de mettre jusqu'à 50 paires en file : les fichiers sont appariés par nom, et tous les rapports et correctifs se téléchargent en un seul ZIP. Aucune option ni aucun export n'est retenu sur le plan gratuit.

Pourquoi mon document contient-il deux fois la même clé ?

JSON l'autorise et tous les analyseurs l'acceptent, en conservant silencieusement la dernière valeur — ce qui signifie que deux documents peuvent différer sur une clé qu'aucune comparaison ne pourrait voir. Cet outil examine les deux côtés à la recherche de clés répétées et vous prévient, en nommant la clé et son emplacement. Cela vaut la peine de vérifier chaque fois qu'un diff paraît plus vide que prévu.

4.8sur 5

sur 72 notes

Notez cet outil

Touchez une étoile — c’est rapide