JavaScript 物件鍵名指南

在 JavaScript 將 Object Keys 轉為 camelCase

API 回傳 snake_case JSON、應用程式使用 camelCase 時,在邊界一次轉換鍵名,不要到處手動改 property。

作者 Camel Case Converter 編輯團隊發布於 2026年9月12日最後審閱

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 不會傳送到轉換伺服器。