JSON命名约定
有没有关于JSON命名的标准? 我看到大多数使用小写(lower_case)分隔的小写字母的例子。 但是,你可以使用PascalCase还是camelCase?
没有单一的标准,但我已经看到你提到的3种风格(“Pascal / Microsoft”,“Java”( camelCase
)和“C”(下划线, snake_case
))以及至less一个以上的snake_case
kebab-case
像longer-name
)。
它似乎主要取决于有关服务的背景开发人员, 那些具有c / c ++背景的语言(或采用类似命名的语言,包括许多脚本语言,ruby等)通常select下划线变体; 并类似地rest(Java vs .NET)。 例如,被提及的Jackson库假定Java bean命名约定( camelCase
)
更新:我的“标准”的定义是一个单一的惯例。 所以虽然可以声称“是的,有很多标准”,但是对于我来说,有多个Naming Conventions
,其中没有一个是整体的“标准”。 其中之一可以被认为是特定平台的标准,但是鉴于JSON被用于平台之间的互操作性,可能或不太合理。
在本文档“ Google JSON样式指南” (关于在Google中构buildJSON API的build议),
它build议:
-
属性名称必须是camelCased ,ASCIIstring。
-
第一个字符必须是字母,下划线(_)或美元符号($)。
例:
{ "thisPropertyIsAnIdentifier": "identifier value" }
我们的团队使用这个约定。
前提
JSON中没有标准的键名 。
推动因素
是的,做出JSON命名约定的决定是非常混乱的。 但是,如果将其分解为组件,则可以很容易地计算出来。
-
用于生成JSON的编程语言
- PHP – snake_case
- Java – camelCase,ProperCamelCase
- JavaScript – camelCase
- 帮助通过评论完成此列表
-
JSON本身没有标准的密钥命名
-
用于parsingJSON的编程语言
- PHP – snake_case
- Java – camelCase,ProperCamelCase
- JavaScript – camelCase
- 帮助通过评论完成此列表
混合匹配组件
- PHP »JSON» Java – ?
- PHP »JSON» JavaScript – ?
- PHP »JSON» PHP – snake_case
- PHP »JSON» 任何 – ?
- Java »JSON» Java – camelCase
- Java »JSON» JavaScript – camelCase
- Java »JSON» PHP – ?
- Java »JSON» 任何 – ?
- JavaScript »JSON» Java – camelCase
- JavaScript »JSON» JavaScript – camelCase
- JavaScript »JSON» PHP – ?
- JavaScript »JSON» 任何 – ?
? – 你可以使用任何命名约定
一些实际的实现
- Google Maps JavaScript API – camelCased
- Facebook的JavaScript API – snake_cased
- amazon web services – snake_cased & camelCased
- Twitter API – snake_cased
- JSON-LD – camelCased & ProperCamelCased
为您的JSON实现select正确的JSON命名约定取决于您的技术堆栈。 有些情况下可以使用snake_case , camelCase或其他命名约定。
值得注意的是我在NodeJS上,如果我正在使用数据库,并且我的字段名被下划分开,我也在结构键中使用它们。
这是因为db字段有很多首字母缩略词/缩写,所以像appSNSInterfaceRRTest看起来有点乱,但是app_sns_interface_rr_test更好。
在Javascriptvariables中,所有的camelCase和类名(构造函数)都是ProperCase,所以你会看到类似的东西
var devTask = { task_id: 120, store_id: 2118, task_name: 'generalLedger' };
要么
generalLedgerTask = new GeneralLedgerTask( devTask );
当然,在JSON键/string包在双引号,但是你只是使用JSON.stringify和传入JS对象,所以不必担心。
我一直努力,直到我发现JSON和JS命名约定之间的这个快乐的媒介。
似乎有足够的变化,人们走出自己的方式,允许从所有约定转换为其他人: http : //www.cowtowncoder.com/blog/archives/cat_json.html
值得注意的是,所提到的Jackson JSONparsing器更喜欢bean_naming
。
我认为JSON并没有一个正式的命名规范,但是你可以跟随一些行业领导来看看它是如何工作的。
Google是世界上最大的IT公司之一,拥有JSON风格指南: https : //google.github.io/styleguide/jsoncstyleguide.xml
利用,你可以find其他的风格指南,谷歌定义,在这里: https : //github.com/google/styleguide