Consertando JSON em camelCase: convertendo payloads de API para snake_case
APIs costumam misturar convenções: clientes JavaScript produzem camelCase, backends Python/Ruby esperam snake_case. Uma camada fina de transformação resolve isso no limite de serialização.
function toSnakeCase(obj) {
if (Array.isArray(obj)) return obj.map(toSnakeCase);
if (obj && typeof obj === "object") {
return Object.fromEntries(
Object.entries(obj).map(([k, v]) => [
k.replace(/[A-Z]/g, c => "_" + c.toLowerCase()),
toSnakeCase(v),
])
);
}
return obj;
}