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.

Par Équipe éditoriale Camel Case ConverterPublié le 12 sept. 2026Dernière relecture

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.

JSON converti
{
  "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.