Aller au contenu principal

Comparateur JSON

Comparez deux documents JSON et repérez leurs différences structurelles. Le traitement reste local dans votre navigateur.

  • Presse-papiers
  • Export

Intégrer ce widget

Personnalisez le rendu, vérifiez l’aperçu puis copiez le code.

Aperçu

Type de code d’intégration

Code à copier

Responsive et redimensionné automatiquement par Bethemesh.

Cet outil vous a-t-il été utile ?

Comment fonctionne cet outil ?

Comparez deux documents JSON après normalisation de leur présentation et de l’ordre des propriétés. Une réponse API écrite sur une seule ligne peut ainsi être équivalente à la même réponse indentée différemment. Le comparateur conserve toutefois les types de valeurs et l’ordre des tableaux : "1" n’est pas le nombre 1 et une liste réordonnée est différente. Les deux sources restent dans le navigateur. Le résultat est un rapport textuel lisible, pas un nouveau document JSON ni un fichier de correctifs à appliquer automatiquement.

Chaque entrée doit respecter la syntaxe JSON. Le moteur analyse les valeurs, trie récursivement les clés des objets puis les sérialise avec une présentation commune. Les espaces extérieurs aux chaînes et l’ordre écrit des propriétés cessent donc de créer des différences artificielles. Les espaces à l’intérieur d’une chaîne restent significatifs.

Les tableaux ne sont pas triés et leurs objets ne sont pas appariés par identifiant. Un déplacement dans une liste reste une différence. Les chaînes, nombres, booléens et null sont comparés selon leurs valeurs analysées. Une clé absente n’équivaut pas à une clé présente avec null. En cas de clés répétées dans une entrée, la lecture JSON conserve la dernière occurrence ; évitez cette écriture ambiguë.

Quand les formes normalisées diffèrent, chaque ligne est comparée à la ligne de même position. Le préfixe - désigne la première source et + la seconde ; une ligne commune est précédée d’espaces. Une insertion peut décaler plusieurs lignes et produire un rapport plus long que le changement logique minimal. Ce n’est ni un diff sémantique par chemin ni un JSON Patch.

Les entiers hors de la plage sûre de JavaScript et les nombres devenus non finis sont refusés pour éviter de déclarer équivalents des identifiants distincts après arrondi. Les décimaux restent soumis à la précision numérique du navigateur. Pour préserver des identifiants très longs, utilisez leur représentation contractuelle en chaînes ; pour comparer les écritures exactes, choisissez un outil de différence de texte.

Comment utiliser cet outil ?

  1. Ajouter les deux versions

    Collez ou importez chaque document dans sa zone. Placez la référence en premier si vous voulez lire - comme ancienne valeur et + comme nouvelle valeur.

  2. Lancer la comparaison normalisée

    Vérifiez le message d’équivalence ou les lignes du rapport. Un refus numérique indique une limite de représentation, pas une différence calculée entre les deux valeurs.

  3. Relire le contexte et exporter

    Examinez les lignes voisines avant de conclure à plusieurs changements. Copiez ou téléchargez le rapport .txt ; toute modification d’une source masque l’ancien résultat.

Cas d'utilisation

Comparer deux réponses API

Écartez les écarts de présentation pour examiner des changements de valeurs. Conservez l’ordre des tableaux lorsque leur position fait partie du contrat.

Relire une configuration JSON

Comparez une version de référence et une version modifiée sans confondre réindentation et changement de données. Les commentaires JSON5 ne sont pas acceptés.

Détecter une conversion de type

Repérez un identifiant passé de number à string ou un booléen remplacé par du texte, même lorsque leur affichage visuel paraît proche.

Exemples

Ignorer l’ordre des propriétés

Ces deux objets possèdent les mêmes clés et valeurs. Le changement d’ordre n’introduit aucune différence structurelle après normalisation.

Entrée

{"b":2,"a":1}
{"a":1,"b":2}

Résultat

Les documents JSON sont équivalents.

Distinguer nombre et chaîne

La ligne retirée contient un nombre et la ligne ajoutée une chaîne. Les guillemets représentent une différence de type réelle, pas une simple présentation.

Entrée

{"id":1}
{"id":"1"}

Résultat

  {
-   "id": 1
+   "id": "1"
  }

Conseils et bonnes pratiques

  • Retirez les champs volatils seulement si votre objectif le justifie : l’outil ne devine pas quels horodatages ignorer.
  • Un grand rapport peut venir d’un décalage de lignes ; recherchez d’abord le point de divergence initial.
  • Pour apparier des lignes de table par clé plutôt que par position, utilisez le comparateur de tableurs.
  • Un message d’équivalence ne confirme pas que les deux documents respectent les règles de votre API ; vérifiez le schéma séparément.

Sources et références

Questions fréquentes

Pourquoi deux fichiers présentés différemment sont-ils équivalents ?

La comparaison porte sur les valeurs JSON après tri des propriétés et mise en page commune. Les espaces de présentation et l’ordre des clés ne suffisent pas à changer un objet.

Les tableaux sont-ils comparés sans tenir compte de l’ordre ?

Non. L’ordre des éléments reste significatif. Le moteur ne recherche pas de colonne id et ne réapparie pas automatiquement des objets déplacés.

Puis-je appliquer le rapport comme JSON Patch ?

Non. Les signes - et + servent à lire un rapport textuel sur les formes normalisées. La sortie ne contient pas les opérations et chemins d’un correctif JSON Patch.

Pourquoi certains grands nombres sont-ils refusés ?

La lecture numérique JavaScript pourrait arrondir deux entiers distincts vers la même valeur. Le refus évite cette fausse équivalence ; utilisez des chaînes pour les identifiants si le contrat le permet.

Outils associés

Des outils similaires ou complémentaires à celui-ci.

Outils similaires

Formatez, minifiez et validez un document JSON pour le rendre plus lisible ou plus compact.

DéveloppementMis en avantUtiliser l’outil

Validez un document JSON avec un schéma et localisez précisément chaque erreur.

DéveloppementMis en avantUtiliser l’outil