JavaScript 객체 키 가이드
JavaScript Object Keys를 camelCase로 변환
API가 snake_case JSON을 반환하고 앱이 camelCase를 사용한다면 각 property를 수동 변경하지 말고 경계에서 한 번 변환하세요.
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
}일반 object 검사보다 배열을 먼저 처리해 배열 안 객체를 변환하면서 scalar value는 유지합니다.
서로 다른 source key가 같은 camelCase로 정규화될 수 있으므로 collision check가 중요합니다.
프로덕션 예외 사례
- API, URL, UUID, OAuth 약어에는 프로젝트별 casing 규칙이 필요할 수 있습니다.
- _id, __typename, $schema 같은 접두사는 의미를 가질 수 있어 보존할 수 있습니다.
- deep conversion과 top-level-only conversion은 서로 다른 API contract입니다.
- Date, Map, Set, class instance 등 비 JSON 값은 별도 처리가 필요합니다.
객체 키 온라인 테스트
JSON 객체를 붙여넣어 재귀 변환, 최상위 전용, 제외 키, _/$ 접두사, 충돌 처리를 확인하세요.
.json 파일을 놓거나 기기에서 선택
파일은 브라우저에서만 읽습니다. 최대 크기: 5 MB.
변환된 JSON
{
"userProfile": {
"firstName": "Ada",
"createdAt": "2026-09-12"
}
}파싱, 파일 읽기, 포맷 및 키 변환은 모두 브라우저에서 로컬로 실행됩니다. JSON 입력은 변환 서버로 전송되지 않습니다.