Tho*_*Tho 362
在本文档中,Google JSON样式指南(在Google上构建JSON API的建议),
它建议:
属性名称必须是camelCased,ASCII字符串.
第一个字符必须是字母,下划线(_)或美元符号($).
例:
{
"thisPropertyIsAnIdentifier": "identifier value"
}
Run Code Online (Sandbox Code Playgroud)
我们的团队使用此惯例.
Sta*_*Man 224
没有SINGLE标准,但我看到你提到的3种风格("Pascal/Microsoft","Java"(camelCase)和"C"(下划线snake_case)) - 以及至少还有一种(kebab-case如longer-name).
它似乎主要取决于有问题的服务的开发者的背景; 具有c/c ++背景的那些(或采用类似命名的语言,包括许多脚本语言,ruby等)通常选择下划线变体; 类似地(Java vs .NET).例如,提到的杰克逊库假设Java bean命名约定(camelCase)
更新:我对"标准"的定义是一个单一的约定.因此,虽然人们可以声称"是的,有许多标准",但对我来说有多个Naming Conventions,其中没有一个是"标准".其中一个可以被认为是特定平台的标准,但是考虑到JSON用于平台之间的互操作性,这可能或者可能没有多大意义.
Abe*_*ejo 157
强加JSON命名约定非常令人困惑.但是,如果将其分解为组件,可以很容易地理解这一点.
用于生成JSON的编程语言
JSON本身没有标准的密钥命名
用于解析JSON的编程语言
为JSON实现选择正确的JSON命名约定取决于您的技术堆栈.有些情况下可以使用snake_case,camelCase或任何其他命名约定.
另一件需要考虑的事情是JSON生成器与JSON解析器和/或前端JavaScript的权重.通常,应该在JSON生成器端而不是JSON-parser端放置更多权重.这是因为业务逻辑通常驻留在JSON生成器端.
此外,如果JSON-parser端未知,那么您可以声明什么可以为您工作.
Cla*_*Liu 16
特别是对于我在NodeJS上,如果我正在使用数据库并且我的字段名称是下划线分隔,我也在结构键中使用它们.
这是因为数据库字段有很多缩略词/缩写所以像appSNSInterfaceRRTest看起来有点混乱,但app_sns_interface_rr_test更佳.
在Javascript变量中,所有camelCase和类名(构造函数)都是ProperCase,所以你会看到像
var devTask = {
task_id: 120,
store_id: 2118,
task_name: 'generalLedger'
};
Run Code Online (Sandbox Code Playgroud)
要么
generalLedgerTask = new GeneralLedgerTask( devTask );
Run Code Online (Sandbox Code Playgroud)
当然,在JSON键/字符串中用双引号括起来,但是你只需使用JSON.stringify并传入JS对象,所以不必担心.
我一直在努力解决这个问题,直到我在JSON和JS命名约定之间找到了这个愉快的媒介.
似乎有足够的变化,人们会竭尽全力允许从所有约定转换到其他约定:http://www.cowtowncoder.com/blog/archives/cat_json.html
值得注意的是,提到的Jackson JSON解析器更喜欢bean_naming.
| 归档时间: |
|
| 查看次数: |
224889 次 |
| 最近记录: |