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的現(xiàn)有JSON庫僅使用訪問密鑰的方法,而不是使用標準的dot.syntax。這意味著與其他可以執(zhí)行dot.syntax的編程語言相比,Java訪問snake_cased鍵不會有多大傷害。
Java 包示例org.json
JsonObject.getString("snake_cased_key")
Java 包示例com.google.gson
JsonElement.getAsString("snake_cased_key")
一些實際的實現(xiàn)
Google Maps JavaScript API - camelCased
Facebook JavaScript API - snake_cased
亞馬遜網(wǎng)絡服務 - snake_cased與駝峰格式
Twitter API - snake_cased
JSON-LD - camelCased和ProperCamelCased
結論
為JSON實現(xiàn)選擇正確的JSON命名約定取決于您的技術堆棧。在某些情況下,可以使用snake_case,camelCase或任何其他命名約定。
要考慮的另一件事是JSON生成器與JSON解析器和/或前端JavaScript的權重。通常,應該將更多的權重放在JSON生成器端,而不是JSON解析器端。這是因為業(yè)務邏輯通常位于JSON生成器端。
另外,如果JSON解析器端未知,則可以聲明對您有用的內容。
- 3 回答
- 0 關注
- 2305 瀏覽
添加回答
舉報