JSONキーのcamelCase/snake_case変換方法

4 分で読了

フロントエンドとバックエンドで異なる命名規則を使う場合、JSONキーの変換が不可欠です。

JavaScript:snake_case → camelCase

function camelizeKeys(obj) {
  if (Array.isArray(obj)) return obj.map(camelizeKeys);
  if (obj && typeof obj === 'object') {
    return Object.fromEntries(
      Object.entries(obj).map(([k, v]) => [
        k.replace(/_([a-z])/g, (_, c) => c.toUpperCase()),
        camelizeKeys(v)
      ])
    );
  }
  return obj;
}

Python:camelCase → snake_case

import re
def snake_keys(obj):
    if isinstance(obj, dict):
        return {re.sub(r'(?<=[a-z])(?=[A-Z])', '_', k).lower(): snake_keys(v) for k, v in obj.items()}
    if isinstance(obj, list):
        return [snake_keys(i) for i in obj]
    return obj

オンラインツール

JSONキーをcamelCaseに変換またはJSONキーをsnake_caseに変換