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.
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.