Sistemare JSON in camelCase: convertire payload di API in snake_case
Le API spesso mischiano convenzioni: i client JavaScript producono camelCase, i backend Python/Ruby si aspettano snake_case. Un sottile strato di trasformazione al confine della serializzazione risolve la questione.
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;
}