JSON命名規則

JSONの命名に関する標準はありますか?ほとんどの例では、アンダースコア(lower_case)で区切られた小文字を使用しています。しかし、PascalCaseやcamelCaseを使うことはできますか?

質問へのコメント (5)

この文書Google JSON Style Guide(GoogleでJSON APIを構築するための推奨事項)では、JSON APIを構築するための推奨事項を説明しています、

次のように推奨しています:

1.プロパティ名は camelCased, ASCII 文字列でなければならない。

2.最初の文字は文字、アンダースコア(_)、ドル記号($)でなければなりません。

{
  "thisPropertyIsAnIdentifier": "identifier value"
}

私のチームはこの規約に従っています。

解説 (10)
ソリューション

唯一の標準はありませんが、私はあなたが言及した3つのスタイル("Pascal/Microsoft", "Java"(camelCase)と"C"(アンダースコア、snake_case))を見たことがあります。)

c/c++(または多くのスクリプト言語やrubyなどを含む、似たような命名を採用する言語)のバックグラウンドを持つ開発者は、アンダースコアのバリアントを選択することが多く、その他も同様です(Java vs .NET)。例えば、言及されたJacksonライブラリは、Javaビーンの命名規則(camelCase)を想定している。

UPDATE:私の定義では、quot;standard"は単一の規約である。つまり、「そうだ、標準はたくさんある」と主張することもできますが、私にとっては複数の「命名規則」が存在し、そのどれもが「標準」ではないのです。しかし、JSONがプラットフォーム間の相互運用性のために使用されることを考えると、それはあまり意味がないかもしれません。

解説 (6)

前提##。

JSONにはキーの標準名はありません

運転要素##。

JSON命名規則を課すことは非常に混乱しています。 ただし、コンポーネントに分割すると、簡単に理解できます。

1。 JSONを生成するためのプログラミング言語

-Python-snake_case。 -PHP-snake_case。 -Java-camelCase。 -JavaScript-camelCase。

2。 JSON自体にはキーの標準名がありません。 3。 JSONを解析するためのプログラミング言語

-Python-snake_case。 -PHP-snake_case。 -Java-camelCase。 -JavaScript-camelCase。

コンポーネントをミックスマッチ###。

1。 Python » JSON» Python - snake_case -全会一致。 1。 Python » JSON» PHP - snake_case -全会一致。 1。 Python » JSON» Java - snake_case -以下の Java問題を参照してください。 1。 Python » JSON» JavaScript - snake_case は理にかなっています。とにかくフロントエンドをねじ込みます。 1。 Python » JSON»わかりません- snake_case は理にかなっています。とにかくパーサーをねじ込みます。 1。 PHP » JSON» Python - snake_case -全会一致。 1。 PHP » JSON» PHP - snake_case -全会一致。 1。 PHP » JSON» Java - snake_case -以下の Java問題を参照してください。 2。 PHP » JSON» JavaScript - snake_case は理にかなっています。とにかくフロントエンドをねじ込みます。 4。 PHP » JSON»わかりません- snake_case は理にかなっています。とにかくパーサーをねじ込みます。 1。 Java » JSON» Python - snake_case -以下の Java問題を参照してください。 1。 Java » JSON» PHP - snake_case -以下の Java問題を参照してください。 5。 Java » JSON» Java - camelCase 。 6。 Java » JSON» JavaScript - camelCase 。 8。 Java » JSON»わかりません- camelCase は理にかなっています。とにかくパーサーをねじ込みます。 9。 JavaScript » JSON» Python - snake_case は理にかなっています。とにかくフロントエンドをねじ込みます。 10。 JavaScript » JSON» PHP - snake_case は理にかなっています。とにかくフロントエンドをねじ込みます。 11。 JavaScript » JSON» Java - camelCase -全会一致。 12。 JavaScript » JSON» JavaScript - camelCase -全会一致。

Java問題##。

  • snake_case は、Javaの既存のJSONライブラリが標準の dot.syntax を使用する代わりにキーにアクセスする方法のみを使用しているため、Javaエントリを持つユーザーにとっては理にかなっています。 これは、 dot.syntax を実行できる他のプログラミング言語と比較して、Javaが snake_cased *キーにアクセスしてもそれほど害にならないことを意味します。

Javaの例 org.json パッケージ

JsonObject.getString( "snake_cased_key")

Javaの例 com.google.gson パッケージ

JsonElement.getAsString( "snake_cased_key")

いくつかの実際の実装##。

-GoogleマップJavaScript API- camelCased 。 -Facebook JavaScript API- snake_cased 。 -Amazon Web Services- snake_cased & camelCased 。 -Twitter API- snake_cased 。 -JSON-LD- camelCased & ProperCamelCased

結論。

JSON実装に適したJSON命名規則を選択するには、テクノロジースタックが必要です。 snake_case camelCase 、またはその他の命名規則を使用できる場合があります。

考慮すべきもう1つのことは、JSONジェネレーターとJSONパーサーおよび/またはフロントエンドJavaScriptに付ける重量です。 一般に、JSON-parser側ではなく、JSON-generator側により多くの重みを付ける必要があります。 これは、ビジネスロジックが通常JSONジェネレーター側にあるためです。

また、JSON-parser側が不明な場合は、何ができるかを宣言できます。

解説 (21)

特にNodeJSの私にとっては、データベースを操作していて、フィールド名がアンダースコアで区切られている場合は、構造キーでも使用します。

これは、dbフィールドに頭字語/略語がたくさんあるため、 appSNSInterfaceRRTest のようなものは少し乱雑に見えますが、 app_sns_interface_rr_test の方が優れているためです。

Javascriptでは、変数はすべてcamelCaseであり、クラス名(コンストラクター)はProperCaseであるため、次のようなものがあります。

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

または。

generalLedgerTask = new GeneralLedgerTask( devTask );

そしてもちろん、JSONではキー/文字列は二重引用符で囲まれていますが、JSON.stringifyを使用してJSオブジェクトを渡すだけなので、心配する必要はありません。

JSONとJSの命名規則の間にこの幸せな媒体が見つかるまで、私はこれに少し苦労しました。

解説 (2)

http://www.cowtowncoder.com/blog/archives/cat_json.html、すべての規約から他の規約への変換をわざわざ許可するほど、バリエーションがあるようだ

特に、言及されているJackson JSONパーサーはbean_namingを好む。

解説 (1)

JSONには正式な命名規則はないと思いますが、業界のリーダーをフォローして、それがどのように機能しているかを確認できます。

世界最大のIT企業の1つであるGoogleには、JSONスタイルのガイドがあります。https://google.github.io/styleguide/jsoncstyleguide.xml

利用すると、Googleが定義する他のスタイルガイドをhttps://github.com/google/styleguideで見つけることができます。

解説 (0)

他の人が述べたように、標準はないので、自分で選択する必要があります。 その際、考慮すべき点がいくつかあります。

1。 JavaScriptを使用してJSONを消費している場合、両方のプロパティに同じ命名規則を使用すると、視覚的な一貫性が得られ、場合によってはコードをよりクリーンに再利用できる機会がいくつか得られます。

2。 ケバブケースを避ける小さな理由は、ハイフンが値に表示される -文字と視覚的に衝突する可能性があることです。

    {。
      「銀行残高」:-10。
    }。
解説 (1)