极简工具箱

免费在线工具 · 本地计算 · 无需上传

命名风格转换:驼峰、下划线与短横线怎么对应

数据库字段是 `user_name`,Java 里是 `userName`,JSON 接口又是 `user_name`,CSS 类名却是 `user-name`。同一条数据在四层里有四种写法。

广告位(百度联盟)

一、五种常见风格

风格示例常见场景
camelCase(小驼峰)userNameJS/Java 变量、方法名
PascalCase(大驼峰)UserName类名、React 组件名
snake_caseuser_namePython 变量、数据库字段
kebab-caseuser-nameCSS 类名、URL、HTML 属性
SCREAMING_SNAKEMAX_RETRY_COUNT常量、环境变量

命名风格本身没有优劣,重要的是同一层内保持一致。混乱的命名比「选错了风格」更麻烦。

二、语言与生态的默认习惯

三、缩写的处理最容易乱

user id 转驼峰,是 userId 还是 userID?常见约定:

转换工具通常按「每个单词首字母大写」处理,得到 UserId,而不是 UserID。跨语言对接时这类差异会导致字段名对不上,需要在映射层显式处理。

四、数字与连续大写

拆分连续大写是转换的难点:HTTPServer 应拆成 HTTP + Server,而不是 H + T + T + P + Server。手工转换容易出错,批量处理建议用成熟库(如 lodash 的 camelCase、Python 的 inflection)。

五、前后端字段映射

最常见的实际需求:数据库 user_name ↔ 前端 userName。

三种做法:

  1. 手动映射:每个 DTO 写 @JsonProperty("user_name"),明确但繁琐。
  2. 全局策略:Jackson 配 PropertyNamingStrategies.SNAKE_CASE,Spring Boot 里一行配置搞定。
  3. 约定统一:接口全部用 snake_case,前端在请求层统一转换。这样后端不用改,前端只写一次转换逻辑。

推荐第 2 或第 3 种,避免每个字段都手写。但要确认所有消费方都遵守同一约定——移动端、第三方接入方往往是漏网之鱼。

六、URL 与文件命名

七、批量转换的注意

八、工具

单次转换用 命名风格转换工具,支持驼峰、下划线、短横线、常量多种格式互转;批量整理代码时配合 代码格式化。

小结

变量驼峰、类大驼峰、数据库下划线、CSS 短横线、常量全大写;缩写处理要团队约定;前后端字段映射用全局策略而不是逐字段注解;URL 和文件名用 kebab-case 且全小写。

本文相关工具(本地计算,无需上传)

更多使用教程