## 屬性值格式
**屬性值必須是Unicode 的 booleans(布爾), 數字(numbers), 字符串(strings), 對象(objects), 數組(arrays), 或 null.**
JSON.org上的標準準確的說明了哪些類型的數據可以作為屬性值。這包含Unicode的布爾(booleans), 數字(numbers), 字符串(strings), 對象(objects), 數組(arrays), 或 null。JavaScript表達式是不被接受的。APIs應該支持該準則,并為某個特定的屬性選擇最合適的數據類型(比如,用numbers代表numbers等)。
好的例子:
~~~
{
"canPigsFly": null, // null
"areWeThereYet": false, // boolean
"answerToLife": 42, // number
"name": "Bart", // string
"moreData": {}, // object
"things": [] // array
}
~~~
不好的例子:
~~~
{
"aVariableName": aVariableName, // Bad - JavaScript 標識符
"functionFoo": function() { return 1; } // Bad - JavaScript 函數
}
~~~
## 空或Null 屬性值
**考慮移除空或null值**
如果一個屬性是可選的或者包含空值或_null_值,考慮從JSON中去掉該屬性,除非它的存在有很強的語義原因。
~~~
{
"volume": 10,
// 即使 "balance" 屬性值是零, 它也應當被保留,
// 因為 "0" 表示 "均衡"
// "-1" 表示左傾斜和"+1" 表示右傾斜
"balance": 0,
// "currentlyPlaying" 是null的時候可被移除
// "currentlyPlaying": null
}
~~~
## 枚舉值
**枚舉值應當以字符串的形式呈現**
隨著APIs的發展,枚舉值可能被添加,移除或者改變。將枚舉值當作字符串可以使下游用戶幽雅的處理枚舉值的變更。
Java代碼:
~~~
public enum Color {
WHITE,
BLACK,
RED,
YELLOW,
BLUE
}
~~~
JSON對象:
~~~
{
"color": "WHITE"
}
~~~
- Google 開源項目風格指南 (中文版)
- C++ 風格指南
- 0. 扉頁
- 1. 頭文件
- 2. 作用域
- 3. 類
- 4. 來自 Google 的奇技
- 5. 其他 C++ 特性
- 6. 命名約定
- 7. 注釋
- 8. 格式
- 9. 規則特例
- 10. 結束語
- Objective-C 風格指南
- Google Objective-C Style Guide 中文版
- 留白和格式
- 命名
- 注釋
- Cocoa 和 Objective-C 特性
- Cocoa 模式
- Python 風格指南
- Google Python 風格指南 - 中文版
- 背景
- Python語言規范
- Python風格規范
- 臨別贈言
- JSON 風格指南
- 簡介
- 定義
- 一般準則
- 屬性名準則
- 屬性值準則
- 屬性值數據類型
- JSON結構和保留屬性名
- 頂級保留屬性名稱
- data對象的保留屬性名
- 用于分頁的保留屬性名
- 用于鏈接的保留屬性名
- 錯誤對象中的保留屬性名
- 屬性順序
- 示例
- 附錄