3 回答
TA贡献1808条经验 获得超4个赞
在本文档《Google JSON样式指南》(关于在Google上构建JSON API的建议)中,
它建议:
属性名称必须为camelCased ASCII字符串。
第一个字符必须是字母,下划线(_)或美元符号($)。
例:
{
"thisPropertyIsAnIdentifier": "identifier value"
}
我的团队遵循此约定。
TA贡献1795条经验 获得超7个赞
前提
有在JSON键没有标准的命名。
驱动因素
实施JSON命名约定非常令人困惑。但是,如果将其分解为多个组件,则很容易解决。
生成JSON的编程语言
Python-snake_case
PHP-snake_case
Java-camelCase
JavaScript-camelCase
JSON本身没有标准的密钥命名
解析JSON的编程语言
Python-snake_case
PHP-snake_case
Java-camelCase
JavaScript-camelCase
混合搭配成分
Python »JSON» Python - snake_case-一致
Python »JSON» PHP - snake_case-一致
Python »JSON» Java - snake_case-请参阅下面的Java问题
Python »JSON» JavaScript - snake_case将很有意义;无论如何都要拧紧前端
Python »JSON»您不知道-snake_case会有意义;反正拧紧解析器
PHP »JSON» Python - snake_case-一致
PHP »JSON» PHP - snake_case-一致
PHP »JSON» Java - snake_case-请参阅下面的Java问题
PHP »JSON» JavaScript - snake_case很有意义;无论如何都要拧紧前端
PHP »JSON»您不知道-snake_case会有意义;反正拧紧解析器
Java »JSON» Python - snake_case-请参阅下面的Java问题
Java »JSON» PHP - snake_case-请参阅下面的Java问题
Java »JSON» Java - camelCase
Java »JSON» JavaScript - camelCase
Java »JSON»您不知道-camelCase会有意义;反正拧紧解析器
JavaScript »JSON» Python - snake_case很有意义;无论如何都要拧紧前端
JavaScript »JSON» PHP - snake_case很有意义;无论如何都要拧紧前端
JavaScript »JSON» Java - camelCase-一致
JavaScript »JSON» JavaScript - camelCase-一致
Java问题
对于具有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")
一些实际的实现
Google Maps JavaScript API - camelCased
Facebook JavaScript API - snake_cased
亚马逊网络服务 - snake_cased与驼峰格式
Twitter API - snake_cased
JSON-LD - camelCased和ProperCamelCased
结论
为JSON实现选择正确的JSON命名约定取决于您的技术堆栈。在某些情况下,可以使用snake_case,camelCase或任何其他命名约定。
要考虑的另一件事是JSON生成器与JSON解析器和/或前端JavaScript的权重。通常,应该将更多的权重放在JSON生成器端,而不是JSON解析器端。这是因为业务逻辑通常位于JSON生成器端。
另外,如果JSON解析器端未知,则可以声明对您有用的内容。
- 3 回答
- 0 关注
- 2248 浏览
添加回答
举报