Trieur de clés JSON
Triez alphabétiquement les clés de chaque objet dans un document JSON, de manière récursive — des diffs propres et des configurations faciles à parcourir.
914 vues
Comment ça fonctionne
Collez du JSON et les clés de chaque objet reviennent triées alphabétiquement. Le point important est que ce tri est récursif : l'outil ne se contente pas de réordonner les clés de l'objet de premier niveau puis de s'arrêter — il parcourt chaque objet imbriqué, à chaque profondeur, et alphabétise chacun indépendamment. Ne trier que le niveau le plus externe laisserait la structure interne d'un document intacte, ce qui viderait l'opération de son intérêt pour tout ce qui est plus complexe qu'un objet plat ; le JSON du monde réel (réponses d'API, fichiers de configuration) est presque toujours imbriqué sur plusieurs niveaux.
Par exemple, avec {"user":{"zip":"1","name":"A"},"active":true}, l'outil ne se contente pas de placer active avant user au niveau supérieur — il entre aussi dans l'objet user et place name avant zip, produisant {"active":true,"user":{"name":"A","zip":"1"}}. Les tableaux ne sont pas touchés : l'ordre de leurs éléments est préservé exactement, car l'ordre d'un tableau est sémantiquement significatif (les tableaux sont ordonnés par définition), alors que l'ordre des clés d'un objet, selon la spécification JSON, ne l'est pas.
Bon à savoir
L'usage principal est de rendre les diffs et les comparaisons de contrôle de version significatifs. Deux documents JSON contenant des données identiques mais sérialisés avec des clés dans un ordre différent produiront un diff textuel énorme et bruyant si on les compare directement — chaque ligne semble différente alors que rien n'a réellement changé. Faire passer les deux par ce trieur au préalable élimine ce bruit : avec des clés dans le même ordre alphabétique, un diff en texte brut ne montre que les véritables changements de contenu, pas un réordonnancement accidentel. C'est tout aussi utile pour éditer manuellement des fichiers de configuration ou rendre une réponse d'API inconnue plus facile à parcourir.
Questions fréquentes
Cela modifie-t-il les données, ou seulement l'ordre ?
Seul l'ordre des clés change — les valeurs, l'imbrication et le contenu des tableaux restent intacts. Les objets JSON sont non ordonnés selon la spécification, c'est donc toujours une transformation sûre et sans rupture.
Le tri s'applique-t-il aux objets imbriqués, ou seulement au niveau supérieur ?
Il est entièrement récursif — chaque objet, à chaque profondeur d'imbrication, voit ses propres clés alphabétisées indépendamment, pas seulement l'objet le plus externe. Ne trier que le niveau supérieur laisserait les objets internes dans leur ordre d'origine, potentiellement incohérent.
Que se passe-t-il si mon JSON est invalide ?
Vous obtenez une erreur d'analyse claire au lieu d'un échec silencieux — corrigez le problème de syntaxe indiqué et réessayez.
Trie-t-il aussi les tableaux ?
Non — l'ordre des éléments des tableaux est préservé exactement, car les tableaux sont ordonnés par définition et les réordonner en changerait le sens. Seules les clés d'objet sont alphabétisées.
Pourquoi trier les clés JSON avant de comparer deux fichiers ?
Les outils de diff en texte brut comparent ligne par ligne, si bien que deux fichiers JSON aux données identiques mais aux clés ordonnées différemment paraissent presque entièrement différents dans un diff, alors que rien de significatif n'a changé. Trier les clés des deux fichiers de la même manière élimine ce bruit, ne laissant qu'un diff qui reflète uniquement les véritables changements de contenu.
Outils similaires
Signaler un problème
Trieur de clés JSON
Commentaires
Pas encore de commentaires — soyez le premier à en écrire un !