Aller au contenu
4all.tools

Comparer des documents JSON en ligne

Comparez deux documents JSON stricts selon leurs valeurs. Consultez les ajouts, suppressions et modifications avec des diagnostics localisés et des aperçus limités.

Espace de travail de l’outil

Comparer des documents JSON

JavaScript est nécessaire pour comparer du JSON dans votre navigateur.

Saisissez du texte JSON strict à comparer.

Saisissez du texte JSON strict à comparer.

  • Comparez les valeurs JSON selon leur sens, sans tenir compte des espaces ni de l’ordre des clés des objets.
  • Les éléments des tableaux sont comparés selon leur position.
  • Chaque entrée peut contenir jusqu’à 1 000 000 unités de code UTF-16.

La comparaison est effectuée localement dans votre navigateur. Votre JSON n’est pas envoyé à un serveur.

Actions de comparaison

Aucune comparaison pour le moment.

Aucune comparaison pour le moment.

Comparer deux documents JSON

Collez l’ancien document dans JSON précédent et le nouveau dans Nouveau JSON, puis sélectionnez Comparer. Le résultat répertorie chaque modification sémantique avec son chemin JSON et les valeurs avant et après. Le résumé compte séparément les ajouts, les suppressions et les modifications. Une nouvelle propriété est un ajout, une propriété absente est une suppression et une valeur différente à un chemin existant est une modification.

Cette paire contient deux ajouts et deux modifications :

{
  "profil": { "actif": true, "region": "ouest" },
  "etiquettes": ["bleu", "ancien"]
}
{
  "etiquettes": ["bleu", "nouveau", "en plus"],
  "profil": { "region": "ouest", "actif": false },
  "note": null
}

Les ajouts sont $.note et $.etiquettes[2]. Les modifications sont $.profil.actif et $.etiquettes[1]. Le résumé indique 2 ajouts, 0 suppression, 2 modifications et 4 changements au total. Réordonner les clés de profil n’ajoute aucune différence.

Comment les valeurs JSON sont comparées

Les espaces et l’ordre des propriétés d’un objet n’affectent pas la comparaison. Les éléments des tableaux sont associés par index ; insérer un élément près du début peut donc modifier les valeurs de plusieurs positions suivantes. Une propriété absente diffère d’une propriété dont la valeur est null ; null, la chaîne "null" et une chaîne vide sont également distincts.

Lorsqu’une valeur devient un autre type JSON, l’outil signale une seule modification à ce chemin, sans lister chaque différence dans la valeur remplacée :

{"profil":{"nom":"Ada","roles":["lecture","édition"]}}
{"profil":"archivé"}

Il s’agit d’une modification à $.profil. L’ancien sous-arbre objet et la nouvelle chaîne sont les deux valeurs de cet enregistrement.

JSON strict et précision numérique

Les deux entrées doivent être du JSON strict. Les commentaires, les virgules finales, les chaînes entre apostrophes et les noms de propriété en double sont refusés. Les diagnostics indiquent le côté concerné et ne donnent une ligne, une colonne ou un chemin que si l’analyseur fournit cette information. La liste peut signaler que certains diagnostics ne sont pas affichés.

Les nombres JSON sont représentés par des nombres JavaScript pendant la comparaison. Les nombres très grands ou très précis peuvent perdre de la précision lors de l’analyse ; un avertissement apparaît lorsque l’analyseur détecte ce risque. La comparaison porte sur les valeurs JSON représentées, pas sur des nombres mathématiques en précision arbitraire ni sur l’écriture originale du nombre.

Limites d’entrée, d’opération et aperçus

Chaque entrée est limitée à 1 000 000 unités de code UTF-16. L’analyse limite aussi l’imbrication à 200 niveaux, les nœuds à 100 000, les diagnostics à 100 et le travail d’analyse à 1 000 000 unités par document. La comparaison dispose d’un budget de 1 000 000 unités de travail et accepte au plus 1 000 enregistrements de changement. La présentation complète est limitée à 2 000 000 unités UTF-16 et une opération peut attendre jusqu’à 15 secondes la réponse du Worker.

Chaque valeur affiche un aperçu JSON complet jusqu’à 512 unités UTF-16. Une valeur plus grande est représentée par un résumé indiquant son type JSON et le nombre d’éléments, de clés ou d’unités de code ; elle reste comparée dans son ensemble. Les résultats sont paginés par 50 lignes, mais les compteurs portent sur toute la comparaison. Si une limite est atteinte, réduisez l’entrée ou comparez une modification plus petite.

Traitement local et annulation

L’analyse et la comparaison s’effectuent localement dans votre navigateur. Le texte saisi n’est pas envoyé à un serveur applicatif. Sélectionnez Annuler pour arrêter une comparaison en cours ; les deux zones de texte restent inchangées. Cet outil n’enregistre pas automatiquement les entrées.