Guia de chaves de objeto em JavaScript

Converter chaves de objeto para camelCase em JavaScript

Se uma API retorna JSON snake_case e a aplicação usa camelCase, converta as chaves uma vez na fronteira em vez de renomear propriedades por toda a app.

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

Implementação em JavaScript

function toCamelKey(key) {
  return key.replace(/[-_]+([a-zA-Z0-9])/g, (_, char) => char.toUpperCase()).replace(/^([A-Z])/, (char) => char.toLowerCase())
}

function keysToCamel(value) {
  if (Array.isArray(value)) return value.map(keysToCamel)
  if (value === null || typeof value !== "object") return value
  const output = {}
  for (const [key, child] of Object.entries(value)) {
    const nextKey = toCamelKey(key)
    if (Object.hasOwn(output, nextKey)) throw new Error(`Key collision: ${nextKey}`)
    output[nextKey] = keysToCamel(child)
  }
  return output
}

Trate arrays antes do caminho de objeto genérico para converter cada objeto e manter valores escalares.

A detecção de colisões evita que duas chaves normalizadas para o mesmo camelCase sobrescrevam um valor.

Casos extremos em produção

  • API, URL, UUID e OAuth podem precisar de regras de siglas específicas.
  • _id, __typename e $schema podem ter prefixos semânticos a preservar.
  • Conversão profunda e somente top-level são contratos diferentes.
  • Date, Map, Set e instâncias não JSON precisam de tratamento separado.

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
{
  "userProfile": {
    "firstName": "Ada",
    "createdAt": "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.