屬性值準則

2018-02-24 15:12 更新

屬性值格式

屬性值必須是Unicode 的 booleans(布爾), 數(shù)字(numbers), 字符串(strings), 對象(objects), 數(shù)組(arrays), 或 null.

JSON.org上的標準準確的說明了哪些類型的數(shù)據(jù)可以作為屬性值。這包含Unicode的布爾(booleans), 數(shù)字(numbers), 字符串(strings), 對象(objects), 數(shù)組(arrays), 或 null。JavaScript表達式是不被接受的。APIs應(yīng)該支持該準則,并為某個特定的屬性選擇最合適的數(shù)據(jù)類型(比如,用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 函數(shù)
}

空或Null 屬性值

考慮移除空或null值

如果一個屬性是可選的或者包含空值或_null_值,考慮從JSON中去掉該屬性,除非它的存在有很強的語義原因。

{
  "volume": 10,

  // 即使 "balance" 屬性值是零, 它也應(yīng)當(dāng)被保留,
  // 因為 "0" 表示 "均衡" 
  // "-1" 表示左傾斜和"+1" 表示右傾斜
  "balance": 0,

  // "currentlyPlaying" 是null的時候可被移除
  // "currentlyPlaying": null
}

枚舉值

枚舉值應(yīng)當(dāng)以字符串的形式呈現(xiàn)

隨著APIs的發(fā)展,枚舉值可能被添加,移除或者改變。將枚舉值當(dāng)作字符串可以使下游用戶幽雅的處理枚舉值的變更。

Java代碼:

public enum Color {
  WHITE,
  BLACK,
  RED,
  YELLOW,
  BLUE
}

JSON對象:

{
  "color": "WHITE"
}
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號