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
}先處理 array,再處理一般 object,讓陣列中的物件可轉換而 scalar value 保持不變。
collision check 可避免兩個來源鍵正規化成同一 camelCase 後覆寫值。
正式環境邊界案例
- API、URL、UUID、OAuth 等縮寫可能需要專案特定規則。
- _id、__typename、$schema 可能是需保留的語意前綴。
- deep conversion 與 top-level-only conversion 是不同 contract。
- Date、Map、Set、class instance 等非 JSON 值需要另外處理。
線上測試物件鍵名
貼上 JSON 物件,測試遞迴轉換、只轉最上層、排除鍵名、_/$ 前綴與衝突處理。
拖放 .json 檔案,或從裝置選取
檔案只會在瀏覽器中讀取。最大檔案大小:5 MB。
轉換後 JSON
{
"userProfile": {
"firstName": "Ada",
"createdAt": "2026-09-12"
}
}解析、檔案讀取、格式化與鍵名轉換都在瀏覽器本機執行。JSON 不會傳送到轉換伺服器。