我被告知在我的数据库中使用蛇形命名法而不是驼峰命名法。JSON API 要求在对象键之间使用破折号。而Javascript 中,则普遍使用驼峰命名法。
如果我有一个从 SQL 数据库获取数据的 RAILS 服务器,将其作为 JSON 发送并在 Javascript 中使用,那么我真的需要在这些表示法之间进行转换吗?
为什么不在所有地方都使用蛇形命名法呢?
我被告知在我的数据库中使用蛇形命名法而不是驼峰命名法。JSON API 要求在对象键之间使用破折号。而Javascript 中,则普遍使用驼峰命名法。
如果我有一个从 SQL 数据库获取数据的 RAILS 服务器,将其作为 JSON 发送并在 Javascript 中使用,那么我真的需要在这些表示法之间进行转换吗?
为什么不在所有地方都使用蛇形命名法呢?
对于JavaScript来说,你可以选择使用驼峰命名法或不使用,这取决于你自己或项目的指导方针。但是,由于几乎每个主要库和核心API都使用驼峰命名法,所以最好也这样做,因为这样你就不需要考虑是否需要使用其中一个。
对于DBMS来说,这取决于操作系统和DBMS,因为使用混合字母可能会导致技术问题。例如,如果你在Windows系统上运行MySQL数据库,则MySQL将不关心表名的大小写,因为文件系统是不区分大小写的。因此,在Windows上默认的MySQL配置将自动将所有表名转换为小写。只要你的DBMS仍然在Windows机器上,这不会成为问题,但是一旦你决定切换到基于Linux的服务器,你将遇到巨大的问题,无法将数据从Windows迁移到Linux服务器。
为了不依赖这些问题,通常在DBMS中仅使用小写字母,无论DBMS是否会有大写字母的问题。使用小写字母,你肯定不会遇到问题,而使用大写字母则需要进行调查以确定是否会成为问题。
const caseConverter = require('case-converter')
const snakeCase = {
an_object: {
nested_string: 'nested content',
nested_array: [{ an_object: 'something' }]
},
an_array: [
{ zero_index: 0 },
{ one_index: 1 }
]
}
const camelCase = caseConverter.toCamelCase(snakeCase);
console.log(camelCase)
/*
{
anObject: {
nestedString: 'nested content',
nestedArray: [{ anObject: 'something' }]
},
anArray: [
{ zeroIndex: 0 },
{ oneIndex: 1 }
]
}
*/
someValue
!=some_value
!=some-value
- 因此,如果您要访问_some value_,则必须在三种格式之间进行转换。附言:我在JSON规范中看不到使用破折号的内容。但是,我不知道您所说的JASON API实际上是什么意思。 - Jaromanda X