Guía de claves de objeto en JavaScript

Convertir claves de objeto a snake_case en JavaScript

Si el frontend usa camelCase y la API espera snake_case, transforma las claves en el límite de serialización.

Por Equipo editorial de Camel Case ConverterPublicado 12 sept 2026Última revisión

Implementación en 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
}

Separa límites camelCase/acrónimos, normaliza separadores y convierte la clave final a minúsculas.

Reconstruir un objeto nuevo permite detectar colisiones antes de asignar valores.

Casos límite en producción

  • HTTPURL, userID u OAuthToken pueden requerir reglas explícitas.
  • Prefijos semánticos como _id y $schema pueden necesitar conservarse.
  • Decide si el contrato API requiere conversión profunda o solo top-level antes de recursar.
  • Mantén detección de colisiones porque claves distintas pueden producir el mismo snake_case.

Probar claves de objeto online

Pega un objeto JSON para probar conversión recursiva, solo nivel superior, exclusiones, prefijos _/$ y colisiones.

Suelta un archivo .json o elige uno de tu dispositivo

Los archivos se leen solo en tu navegador. Tamaño máximo: 5 MB.

JSON convertido
{
  "user_profile": {
    "first_name": "Ada",
    "created_at": "2026-09-12"
  }
}

El análisis, lectura de archivos, formato y conversión se ejecutan localmente en tu navegador. El JSON no se envía a un servidor de conversión.