Guia de chaves de objeto em JavaScript

Converter chaves de objeto para snake_case em JavaScript

Se o frontend usa camelCase e a API espera snake_case, transforme as chaves na fronteira de serialização.

Por Equipe editorial do Camel Case ConverterPublicado em 12 de set. de 2026Última revisão

Implementação em 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
}

Separe limites camelCase/siglas, normalize separadores e converta a chave final para minúsculas.

Reconstruir um novo objeto permite detectar colisões antes de atribuir valores.

Casos extremos em produção

  • HTTPURL, userID ou OAuthToken podem exigir regras explícitas.
  • Prefixos semânticos como _id e $schema podem precisar ser preservados.
  • Decida se o contrato API exige conversão profunda ou só top-level antes de recursar.
  • Mantenha detecção de colisões porque chaves distintas podem virar o mesmo snake_case.

Testar chaves de objeto online

Cole um objeto JSON para testar conversão recursiva, apenas nível superior, exclusões, prefixos _/$ e colisões.

Solte um arquivo .json ou escolha no dispositivo

Arquivos são lidos apenas no navegador. Tamanho máximo: 5 MB.

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

Parsing, leitura de arquivo, formatação e conversão rodam localmente no navegador. O JSON não é enviado a um servidor de conversão.