Convertisseur de casse (camelCase, snake_case …)
Convertissez des noms ligne par ligne, ou renommez toutes les clés d’un document JSON, entre camelCase, PascalCase, snake_case, kebab-case et d’autres styles.
Mode d'emploi
- En laissant « Appliquer à » sur « Chaque ligne du texte », collez ou saisissez vos noms dans « Entrée », un par ligne. Chaque ligne est convertie séparément, et les lignes vides ainsi que les espaces ou tabulations en début ou en fin de ligne sont conservées.
- Choisissez un style sous « Convertir en », par exemple camelCase, snake_case ou CONSTANT_CASE. La sortie se met à jour pendant la saisie ou lorsque vous changez une option : il n’y a donc pas de bouton de conversion.
- Pour renommer les clés d’un document JSON, réglez « Appliquer à » sur « Clés JSON (valeurs inchangées) » et collez le document entier. Les clés des objets et des tableaux imbriqués sont elles aussi renommées.
- En mode « Chaque ligne du texte », la zone « Tous les styles pour la première ligne » affiche dans les dix styles la première ligne de l’entrée qui n’est ni vide ni composée uniquement d’espaces, pour que vous puissiez les comparer avant d’en choisir un.
- Vérifiez la « Sortie », puis cliquez sur « Copier le résultat ».
Questions fréquentes
Le texte que je saisis est-il envoyé quelque part ?
Non. La conversion s’effectue dans votre navigateur en JavaScript, et les noms ou le JSON que vous saisissez ne sont pas envoyés à LeedyBox.
Comment l’outil détermine-t-il où un mot se termine et où le suivant commence ?
Un nouveau mot commence là où une minuscule ou un chiffre est suivi d’une majuscule (fooBar, user2Name), avant la dernière majuscule d’une suite de majuscules lorsqu’une minuscule la suit (XMLHttp devient XML et Http), et à chaque caractère qui n’est ni une lettre ni un chiffre, comme une espace, un tiret bas, un trait d’union ou un point. Le passage d’une lettre à un chiffre, ou l’inverse, ne crée pas à lui seul un nouveau mot : base64Encode devient ainsi base64_encode en snake_case, et user2name reste un seul mot.
Pourquoi une nouvelle conversion ne redonne-t-elle pas le nom d’origine ?
Certains détails se perdent en route. Chaque mot reçoit la casse du style choisi : parseHTML devient ainsi parse_html en snake_case, puis revient sous la forme parseHtml en camelCase. De plus, un nombre se rattache au mot qui le précède une fois le séparateur disparu : total_amount_2 devient totalAmount2 en camelCase, puis total_amount2 en snake_case. Conservez les noms d’origine si vous avez besoin d’un aller-retour exact.
Pourquoi la ponctuation a-t-elle disparu, et pourquoi Title Case met-il une majuscule à chaque mot ?
Tout caractère qui n’est ni une lettre ni un chiffre est traité comme une coupure entre deux mots. La ponctuation et les symboles ne sont pas recopiés dans la sortie, et seul le séparateur propre au style, s’il en a un, est placé entre les mots : « Hello, world! » devient ainsi « hello world » en lower case, et don't devient don t. Title Case met une majuscule à chaque mot, y compris aux mots courts comme of et the, et passe le reste du mot en minuscules : NASA devient Nasa et iPhone devient I Phone. L’outil est conçu pour des noms et des identifiants plutôt que pour des phrases.
Que deviennent les clés JSON comme _id, @type ou $ref ?
Un symbole initial compte comme un séparateur et il est donc supprimé : en camelCase, _id devient id, @type devient type et $ref devient ref. Une clé composée uniquement de symboles, comme $, garde son nom. Si deux clés d’un même objet aboutissent au même nom, par exemple _id et id, ou user_name et userName, l’outil affiche une erreur qui nomme les deux clés et le chemin de leur objet (comme $ pour le niveau supérieur) et ne convertit rien : aucune valeur n’est ainsi écrasée.
Le mode JSON modifie-t-il autre chose que les clés ?
Le document est analysé puis réécrit avec une indentation de deux espaces : ses espacements et ses sauts de ligne peuvent donc changer. Les nombres passent par JavaScript : 1.0 est écrit 1 et 1e2 devient 100, les entiers supérieurs à 9007199254740991 et les nombres décimaux comportant beaucoup de chiffres peuvent être arrondis, et un nombre trop grand pour JavaScript, comme 1e400, devient null. Certaines séquences d’échappement des chaînes sont réécrites en caractères simples, par exemple \u00e9 en é et \/ en /. Les clés qui sont, ou deviennent, des nombres entiers inférieurs à 4294967295 sans zéro initial, comme "2" ou "_3", passent avant les autres clés de leur objet, dans l’ordre numérique. Si une même clé apparaît deux fois dans un objet, seule la dernière valeur est conservée, sans avertissement. L’entrée doit être du JSON strict : les commentaires et les virgules finales provoquent une erreur.
L’outil fonctionne-t-il avec les lettres accentuées et les écritures non latines ?
Les lettres de toutes les écritures comptent comme des caractères de mot, et une lettre accentuée enregistrée comme un seul caractère, comme é, est traitée comme n’importe quelle autre lettre. Les écritures sans majuscules ni minuscules, comme le coréen, le chinois et le japonais, gardent leurs caractères inchangés, et seuls les séparateurs entre les mots suivent le style choisi. Le passage en majuscules ou en minuscules suit les règles Unicode générales : ß devient SS en UPPER CASE, et le İ majuscule devient un i ordinaire en minuscules. Pour des noms turcs ou azerbaïdjanais, activez « Lettres turques » : I devient alors ı, et i devient İ. Les signes combinants, comme les marques de ton du thaï, les signes vocaliques du thaï et de l’hindi ou un accent enregistré comme caractère distinct, restent attachés à leur lettre. Un texte écrit sans espaces entre les mots, comme le thaï, le chinois ou le japonais, n’est découpé qu’aux espaces ou aux autres séparateurs.