Deux documents qui contiennent les mêmes données dans un ordre de clés différent sont impossibles à comparer avec un diff de texte brut. La configuration écrite à la main et la configuration écrite par un programme ne coincident presque jamais sur l'ordre, et trier les deux de la même manière est ce qui les rend comparables à nouveau.
Utilisation du trieur de clés JSON
Choisissez un ordre, A à Z ou Z à A, une largeur d'indentation, et appuyez Trier les clés. Seules les clés d'objet se déplacent. Un tableau est laissé exactement comme il a été écrit, car l'ordre d'un tableau fait partie des données qu'il contient, pas un accident de la manière dont il a été tapé, et un outil qui réordonnerait silencieusement les tableaux modifierait ce que le document signifie tout en prétendant simplement le ranger.
Tri de
{"item10":"a","item2":"b","Zebra":"c","apple":"d","list":[3,1,2]}
par défaut retourne les clés dans l'ordre exact du code caractère : Zebra
avant apple (les lettres majuscules se trient avant les minuscules), et
item10 avant item2 ("1" est un caractère plus petit que "2"). Le
tableau [3, 1, 2] revient complètement intact.
L'option “Nombres en ordre”
L'ordre par code caractère est la raison pour laquelle item10 se tri
avant item2 : la comparaison regarde un caractère à la fois et ne remarque
jamais que 10 est plus grand que 2. Activer “Nombres en ordre” lit les suites
de chiffres comme des nombres à la place, donc item2 vient correctement
avant item10. Ceci est explicitement écrit dans l'outil plutôt que confié
à la comparaison sensible à la langue du navigateur, car une comparaison
qui suit la langue de la page trierait exactement le même fichier
différemment sur la page hindi que sur la page anglaise, et un outil qui
range un document doit donner la même réponse peu importe qui l'utilise.
Clés en double
Un document avec une clé en double conserve les deux copies, côté à côté,
après le tri. Cet outil ne décide pas laquelle est “correcte” comme le
ferait une approche basée sur JSON.parse en ne gardant silencieusement
que la dernière ; il trie ce qui est là et laisse la décision sur la
doublure à vous, ou au validateur JSON, qui
la signalera comme un avertissement.
Pourquoi le tri ne modifie pas vos données
Trie ou non, les valeurs, leurs types et leur texte exact sont identiques. C'est une commodité d'affichage et de comparaison, pas une transformation du sens du document, c'est pourquoi il est sûr de trier un document avant de le comparer dans l'outil JSON diff sans craindre que le tri lui-même n'introduise une différence.