Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSON命名约定(snake_case、camelCase或PascalCase)_Json_Camelcasing_Pascalcasing_Snakecasing - Fatal编程技术网

JSON命名约定(snake_case、camelCase或PascalCase)

JSON命名约定(snake_case、camelCase或PascalCase),json,camelcasing,pascalcasing,snakecasing,Json,Camelcasing,Pascalcasing,Snakecasing,JSON命名有标准吗?我看到大多数示例都使用下划线分隔的小写字母,也就是snake\u case,但它也可以使用PascalCase或camelCase吗?似乎有足够多的变化,人们会特意允许从所有约定转换为其他约定: 值得注意的是,提到的Jackson JSON解析器更喜欢bean_命名没有单一的标准,但我看到了您提到的3种样式(“Pascal/Microsoft”、“Java”(camelCase)和“C”(下划线,snake_case)——以及至少一种以上的kebab case,比如更长的名

JSON命名有标准吗?
我看到大多数示例都使用下划线分隔的小写字母,也就是
snake\u case
,但它也可以使用
PascalCase
camelCase
吗?

似乎有足够多的变化,人们会特意允许从所有约定转换为其他约定:


值得注意的是,提到的Jackson JSON解析器更喜欢
bean_命名

没有单一的标准,但我看到了您提到的3种样式(“Pascal/Microsoft”、“Java”(
camelCase
)和“C”(下划线,
snake_case
)——以及至少一种以上的
kebab case
,比如
更长的名称

这主要取决于所讨论的服务的开发人员的背景;具有c/c++背景的人(或采用类似命名的语言,包括许多脚本语言、ruby等)通常选择下划线变体;和rest类似(Java与.NET)。例如,前面提到的Jackson库采用javabean命名约定(
camelCase

更新:我对“标准”的定义是一个单一的约定。因此,虽然有人可能会说“是的,有很多标准”,但对我来说,有多个命名约定,没有一个是总体上的“标准”。其中一个可以被视为特定平台的标准,但考虑到JSON用于平台之间的互操作性,这可能有意义,也可能没有意义。

在本文档中(谷歌构建JSON API的建议)

委员会建议:

  • 属性名称必须是大小写的ASCII字符串

  • 第一个字符必须是字母、下划线(\)或美元符号($)

  • 例如:

    {
      "thisPropertyIsAnIdentifier": "identifier value"
    }
    

    我的团队遵循这一惯例。

    尤其是对我来说,如果我使用的是数据库,并且我的字段名用下划线分隔,我也会在结构键中使用它们

    这是因为db字段有很多首字母缩略词/缩写,所以像appsnsinterfacertest这样的东西看起来有点凌乱,但是app\u sns\u interface\u rr\u test更好

    在Javascript中,变量都是camelCase,类名(构造函数)都是PROPERRCASE,所以您会看到

    var devTask = {
            task_id: 120,
            store_id: 2118,
            task_name: 'generalLedger'
        };
    

    当然,在JSON中,键/字符串用双引号括起来,但是您只需使用JSON.stringify并传入JS对象,所以不必担心这一点

    我对此有些挣扎,直到我在JSON和JS命名约定之间找到了一个令人满意的媒介

    JSON语法对用作名称的字符串没有任何限制

    JSON中没有标准的键命名,camelCase或snake_应该可以正常工作

    tl;博士 这里有一条经验法则,我想大多数开发人员都会使用

    技术栈 命名约定 理由/指南 Python»JSON»Python 蛇案 一致的 Python»JSON»PHP 蛇案 一致的 Python>JSONJava 蛇壳还是骆驼壳 依靠业务逻辑所在的位置。利用Java的外在风格。 Python»JSON»后端JavaScript 蛇壳还是骆驼壳 依靠业务逻辑所在的位置。 Python»JSON»前端JavaScript 蛇案 不管怎样,还是拧紧前端 Python»JSON»您不知道 蛇案 不管怎样,去死解析器吧 PHP»JSON»Python 蛇案 一致的 PHP»JSON»PHP 蛇案 一致的 PHP>JSONJava 蛇壳还是骆驼壳 依靠业务逻辑所在的位置。利用Java的外在风格。 PHP»JSON»后端JavaScript 蛇壳还是骆驼壳 依靠业务逻辑所在的位置。 PHP»JSON»前端JavaScript 蛇案 不管怎样,还是拧紧前端 PHP»JSON»您不知道 蛇案 不管怎样,去死解析器吧 Java>JSONPython 骆驼壳还是蛇壳 依靠业务逻辑所在的位置。利用Java的外在风格。 Java>JSONPHP 骆驼壳还是蛇壳 依靠业务逻辑所在的位置。利用Java的外在风格。 Java>JSONJava 骆驼壳 一致的 Java>JSONJavaScript 骆驼壳 一致的 Java»JSON»您不知道 骆驼壳 不管怎样,去死解析器吧 后端JavaScript»JSON»Python 骆驼壳还是蛇壳 依靠业务逻辑所在的位置。 前端JavaScript»JSON»Python 蛇案 不管怎样,还是拧紧前端 后端JavaScript»JSON»PHP 骆驼壳还是蛇壳 依靠业务逻辑所在的位置。 前端JavaScript»JSON»PHP 蛇案 不管怎样,还是拧紧前端 JavaScript»JSON»Java 骆驼壳 一致的 JavaScript»JSON»JavaScript 骆驼壳 起初的 JavaScript»JSON»您不知道 骆驼壳 不管怎样,去死解析器吧
    我认为JSON没有正式的命名约定,但是您可以跟随一些行业领导者来了解它是如何工作的

    谷歌是世界上最大的IT公司之一,它有一个JSON风格的指南:

    利用这个优势,你可以
    generalLedgerTask = new GeneralLedgerTask( devTask );
    
    {
      "bank-balance": -10
    }