JSON命名是否有标准? 我看到大多数使用由下划线(lower_case)分隔的小写的示例。 可是,你可使用PascalCase或camelCase吗? javascript
在本文档中, Google JSON样式指南 (在Google上构建JSON API的建议), html
它建议: 前端
属性名称必须是camelCased ,ASCII字符串。 java
第一个字符必须是字母,下划线(_)或美圆符号($)。 git
例: github
{ "thisPropertyIsAnIdentifier": "identifier value" }
咱们的团队使用此惯例。 数据库
特别是对于我在NodeJS上,若是我正在使用数据库而且个人字段名称是下划线分隔,我也在结构键中使用它们。 编程
这是由于db字段有不少首字母缩略词/缩写,因此像appSNSInterfaceRRTest看起来有点乱,但app_sns_interface_rr_test更好。 json
在Javascript变量中,全部camelCase和类名(构造函数)都是ProperCase,因此你会看到像 api
var devTask = { task_id: 120, store_id: 2118, task_name: 'generalLedger' };
要么
generalLedgerTask = new GeneralLedgerTask( devTask );
固然,在JSON键/字符串中用双引号括起来,可是你只需使用JSON.stringify并传入JS对象,因此没必要担忧。
我一直在努力解决这个问题,直到我在JSON和JS命名约定之间找到了这个愉快的媒介。
强加JSON命名约定很是使人困惑。 可是,若是将其分解为组件,能够很容易地理解这一点。
用于生成JSON的编程语言
JSON自己没有标准的密钥命名
用于解析JSON的编程语言
对于那些使用Java条目的人来讲, snake_case仍然有意义,由于Java的现有JSON库只使用方法来访问密钥,而不是使用标准的dot.syntax 。 这意味着与其余能够执行dot.syntax的编程语言相比,Java访问snake_cased键不会形成太大的伤害。
Java的 org.json
包 示例
JsonObject.getString("snake_cased_key")
Java的 com.google.gson
包 示例
JsonElement.getAsString("snake_cased_key")
为JSON实现选择正确的JSON命名约定取决于您的技术堆栈。 有些状况下可使用snake_case , camelCase或任何其余命名约定。
另外一件须要考虑的事情是JSON生成器与JSON解析器和/或前端JavaScript的权重。 一般,应该在JSON生成器端而不是JSON-parser端放置更多权重。 这是由于业务逻辑一般驻留在JSON生成器端。
此外,若是JSON-parser端未知,那么您能够声明什么能够为您工做。
我认为JSON没有正式的命名约定,但你能够跟随一些行业领导者看看它是如何工做的。
Google是全球最大的IT公司之一,拥有JSON风格指南: https : //google.github.io/styleguide/jsoncstyleguide.xml
利用此功能,您能够在此处找到Google定义的其余样式指南: https : //github.com/google/styleguide
正如其余人所说,没有标准,因此你应该本身选择一个。 这样作时须要考虑如下几点:
若是您使用JavaScript来使用JSON,那么对二者中的属性使用相同的命名约定将提供视觉一致性,而且可能有一些机会来从新使用更清晰的代码。
避免烤肉串的一个小理由是连字符可能会在视觉上与-
出如今值中的字符发生冲突。
{ "bank-balance": -10 }