命名格式转换器(camelCase、snake_case …)
逐行转换名称,或将 JSON 文档中的所有键转换为 camelCase、PascalCase、snake_case、kebab-case 等格式。
使用方法
- 将“应用于”保持为“文本的每一行”,在“输入”中粘贴或输入名称,每行一个。每一行单独转换,空行以及行首、行尾的空格或制表符都会保留。
- 在“转换为”中选择一种格式,例如 camelCase、snake_case 或 CONSTANT_CASE。输出会随着输入或选项的更改而更新,因此没有转换按钮。
- 要重命名 JSON 文档中的键,请将“应用于”设为“JSON 键(值不变)”,然后粘贴整个文档。嵌套对象和数组中的键也会被重命名。
- 在“文本的每一行”模式下,“第一行的所有格式”区域会以全部十种格式显示输入中第一个非空白的行,方便您比较之后再做选择。
- 检查“输出”,然后点击“复制结果”。
常见问题
我输入的文本会被发送到其他地方吗?
不会。转换通过 JavaScript 在您的浏览器中进行,您输入的名称或 JSON 不会上传到 LeedyBox。
工具如何判断一个单词在哪里结束、下一个单词从哪里开始?
以下位置会开始一个新单词:小写字母或数字后面紧跟大写字母的地方(fooBar、user2Name);一串大写字母后接小写字母时,在其中最后一个大写字母之前(XMLHttp 会拆成 XML 和 Http);以及任何既不是字母也不是数字的字符处,例如空格、下划线、连字符或点。字母与数字之间的切换本身不会开始新单词,因此 base64Encode 在 snake_case 中会变成 base64_encode,而 user2name 仍是一个单词。
为什么再转换回去时得不到原来的名称?
转换过程中会丢失一些细节。每个单词都会按所选格式重新设置大小写,因此 parseHTML 在 snake_case 中会变成 parse_html,再转回 camelCase 时则成为 parseHtml。此外,分隔符去掉后,数字会并入前面的单词:total_amount_2 在 camelCase 中变成 totalAmount2,再转为 snake_case 时则变成 total_amount2。如果需要原样往返转换,请保留原始名称。
为什么标点符号消失了?为什么 Title Case 会把每个单词的首字母都大写?
所有既不是字母也不是数字的字符都会被视为单词之间的分隔。标点和符号不会被复制到输出中,单词之间只会放置该格式自身的分隔符(如果有的话),因此“Hello, world!”在 lower case 中会变成“hello world”,don't 会变成 don t。Title Case 会将每个单词(包括 of、the 这样的短词)的首字母大写,并把单词的其余部分改为小写,因此 NASA 会变成 Nasa,iPhone 会变成 I Phone。本工具适用于名称和标识符,而不是句子。
_id、@type 或 $ref 这样的 JSON 键会怎样处理?
开头的符号会被视为分隔符,因此会被删除:在 camelCase 中,_id 变成 id,@type 变成 type,$ref 变成 ref。仅由符号组成的键(例如 $)会保留原名。如果同一对象中的两个键转换后同名,例如 _id 和 id,或 user_name 和 userName,工具会显示错误,指出这两个键及其所在对象的路径(顶层为 $),并且不进行任何转换,因此不会有值被覆盖。
JSON 模式除了键之外,还会改变其他内容吗?
文档会被解析后以两个空格缩进重新输出,因此其中的空格和换行可能会改变。数字会经过 JavaScript 处理:1.0 写为 1,1e2 写为 100,大于 9007199254740991 的整数和位数很多的小数可能会被舍入,超出 JavaScript 表示范围的数字(例如 1e400)会变成 null。字符串中的部分转义序列会写成普通字符,例如 \u00e9 写成 é,\/ 写成 /。如果键本身是、或转换后变成不带前导零且小于 4294967295 的整数(例如 "2" 或 "_3"),它会按数值顺序移到所在对象中其他键的前面。如果同一对象中同一个键出现两次,只保留最后一个值,并且不会给出警告。输入必须是严格的 JSON,因此注释和末尾逗号会导致错误。
能处理带重音的字母和非拉丁文字吗?
任何文字的字母都算作单词字符,以单个字符存储的带重音字母(例如 é)也和其他字母一样处理。韩文、中文、日文等没有大小写之分的文字会保持原样,只有单词之间的分隔符会按所选格式变化。大小写转换遵循通用的 Unicode 规则,因此 ß 在 UPPER CASE 中会变成 SS,大写的 İ 转成小写后是普通的 i。处理土耳其语或阿塞拜疆语名称时,请打开“土耳其语字母规则”:I 会变成 ı,i 会变成 İ。组合标记(例如泰文声调符号、泰文和印地文元音符号,或作为独立字符存储的重音符号)会与所属字母保持在一起。泰文、中文、日文等词与词之间不加空格的文本,只会在有空格或其他分隔符的位置拆分。