开放云将请求和响应负载表示为 标准 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+"
}
字段掩码
字段掩码是描述在发起请求时要操作的字段的字符串。要构建字段掩码,您需要在字符串中指定以逗号分隔的 JSON 字段名称。例如,给定以下内容:
示例 JSON
{
"foo": {
"a": "c",
"b": "d"
},
"bar": "x",
"baz": "y"
}
如果您想指定一个字段掩码以仅更新 foo.b 和 bar 的值,字段掩码将如下所示:foo.b, bar
在开放云中,支持字段掩码的更新方法有一个名为 updateMask 的参数,您可以在其中指定字段掩码作为值。
货币
通常用于定义价格,Money 类型具有三位字母的货币代码(如 ISO 4217 所定义)和数量,该数量使用 Decimal 类型。例如,您可能会像这样表示一个 $17.99 的价格:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 1799,
"exponent": -2
}
}
创作者商店产品需要的 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 时,表示有效数字后面 trailing zeroes 的数量。当 exponent 小于 0 时,表示有效数字中有多少位是在小数点后面。当 exponent 为 0 时,Decimal 的值就是 significand 的值。