Guide des clés d’objet en JavaScript
Convertir les clés d’objet en snake_case en JavaScript
Quand le frontend utilise camelCase et l’API attend snake_case, transformez les clés à la frontière de sérialisation.
Implémentation JavaScript
function toSnakeKey(key) {
return key.replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2").replace(/([a-z0-9])([A-Z])/g, "$1_$2").replace(/[-\s]+/g, "_").toLowerCase()
}
function keysToSnake(value) {
if (Array.isArray(value)) return value.map(keysToSnake)
if (value === null || typeof value !== "object") return value
const output = {}
for (const [key, child] of Object.entries(value)) {
const nextKey = toSnakeKey(key)
if (Object.hasOwn(output, nextKey)) throw new Error(`Key collision: ${nextKey}`)
output[nextKey] = keysToSnake(child)
}
return output
}Séparez les frontières camelCase/acronymes puis normalisez les séparateurs avant de mettre la clé en minuscules.
Reconstruire un nouvel objet permet de détecter les collisions avant toute affectation.
Cas limites en production
- HTTPURL, userID ou OAuthToken peuvent demander des règles explicites.
- Des préfixes comme _id et $schema peuvent devoir rester intacts.
- Décidez si le contrat API exige une conversion profonde ou seulement au premier niveau.
- Conservez une détection de collisions pour les clés qui produisent le même snake_case.
Tester les clés d’objet en ligne
Collez un objet JSON pour tester la conversion récursive, le niveau supérieur, les exclusions, les préfixes _/$ et les collisions.
Déposez un fichier .json ou choisissez-en un sur votre appareil
Les fichiers sont lus uniquement dans votre navigateur. Taille maximale : 5 Mo.
{
"user_profile": {
"first_name": "Ada",
"created_at": "2026-09-12"
}
}Analyse, lecture de fichier, formatage et conversion s’exécutent localement dans votre navigateur. Le JSON n’est pas envoyé à un serveur de conversion.