Open Cloud 將請求和響應負載表示為 標準 JSON。標準的 JSON 類型包括文本、值、對象、數組、數字和字符串。某些類型在表示特定類型的數據時有特殊考慮,這些在以下各節中描述。
時戳
使用 RFC 3339,生成的輸出將始終被 Z 標準化,並使用 0、3、6 或 9 位小數。也接受 "Z" 以外的偏移量。
示例時間戳
{ "timestamp": "1972-01-01T10:00:20.021Z" }
持續時間
生成的輸出始終包含 0、3、6 或 9 位小數,具體取決於所需的精度,後面跟著後綴 "s"。接受任何小數位(也可以沒有),只要它們符合納秒精度並且後綴 "s" 是必要的。範圍必須在 -315,576,000,000 到 315,576,000,000 秒之間(包括在內)。
示例持續時間
{
"duration-9": "1.000340012s",
"duration-0": "1s"
}
字節
字節數據經過標準 base64 編碼為字符串,並帶有填充。支持標準或 URL 安全的 base64 編碼,無論是否帶有填充。
示例字節
{
"bytes": "YWJjMTIzIT8kKiYoKSctRbLx+"
}
FieldMask
FieldMask 是一個字符串,用於描述在發送請求時要作用的字段。要構建字段掩碼,您可以在字符串中指定用逗號分隔的 JSON 字段名稱。例如,給定以下內容:
示例 JSON
{
"foo": {
"a": "c",
"b": "d"
},
"bar": "x",
"baz": "y"
}
如果您想指定一個字段掩碼,只更新 foo.b 和 bar 的值,則字段掩碼看起來像:foo.b, bar
在 Open Cloud 中,支持字段掩碼的更新方法有一個名為 updateMask 的參數,您可以在此指定一個字段掩碼作為值。
貨幣
通常用於定義價格,Money 類型有一個三位數的貨幣代碼(如 ISO 4217 所定義)和一個數量,這個數量使用 Decimal 類型。例如,您可以這樣表示 17.99 美元的價格:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 1799,
"exponent": -2
}
}
Creator Store 產品需要 exponent 為 -9,因此相同的價格看起來如下:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 17990000000,
"exponent": -9
}
}
十進制
以類似科學記數法的形式表示十進制數字,包含有效位數和指數。
範例:
17
{"significand": 17, "exponent": 0} 或僅為 {"significand": 17}
-0.005
{"significand": -5, "exponent": -3}
3350萬 (33,500,000)
{"significand": 335, "exponent": 5}
11/8 (1.375)
{"significand": 1375, "exponent": -3}
當 exponent 大於 0 時,它表示有效位數後的零的數量。當 exponent 小於 0 時,它表示有多少有效位數位於小數點後面。當 exponent 為 0 時,Decimal 的值就是 significand 的值。