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.
Aucune comparaison pour le moment.
Diagnostics des entrées
Diagnostics du JSON précédent
Diagnostics du nouveau JSON
Aucune comparaison pour le moment.
Résumé de la comparaison
- Nombre total de changements
- 0
- Ajouts
- 0
- Suppressions
- 0
- Modifications
- 0
Aucune différence entre les valeurs représentées n’a été trouvée.
Un ou plusieurs nombres ont peut-être perdu en précision lors de l’analyse.
Différences
| Type de changement | Chemin | Valeur précédente | Nouvelle valeur |
|---|
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.