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 }