开放云将请求和响应payload视为标准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 编码与 padding 进行编码,用作字符串。支持标准或带或不带 padding 的 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
}
}
创作者商店产品需要 -9 exponent 的价格,所以价格相同看起来像这样:
"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 的值。