为了账号安全,请及时绑定邮箱和手机立即绑定

JSON命名约定

JSON命名约定

开满天机 2019-11-22 11:09:44
JSON命名是否有标准?我看到大多数示例都使用下划线(lower_case)分隔的所有小写字母。但是,可以使用PascalCase或camelCase吗?
查看完整描述

3 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

在本文档《Google JSON样式指南》(关于在Google上构建JSON API的建议)中,


它建议:


属性名称必须为camelCased ASCII字符串。


第一个字符必须是字母,下划线(_)或美元符号($)。


例:


{

  "thisPropertyIsAnIdentifier": "identifier value"

}

我的团队遵循此约定。


查看完整回答
反对 回复 2019-11-22
?
一只萌萌小番薯

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解析器端未知,则可以声明对您有用的内容。


查看完整回答
反对 回复 2019-11-22
  • 3 回答
  • 0 关注
  • 2248 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信