类型和格式

您可以使用参数和架构的 typeformat 属性来确定属性的数据类型。type 属性在 JSON 请求和响应中指明属性的类型(JSON 支持一小组数据类型;如需了解详情,请参阅 json.org)。format 属性提供有关底层类型的其他信息。媒体资源始终具有 type 属性,但有些媒体资源可能还具有 format 属性。

例如,64 位整数无法在 JSON 中表示(因为 JavaScript 和 JSON 支持的整数最大为 2^53)。因此,64 位整数必须在 JSON 请求/响应中表示为字符串。因此,type 属性将设置为“字符串”,但 format 属性将设置为“int64”,以指明它是 64 位整数。

JSON 架构规范已为 format 属性定义了一组常用值。Google API Discovery Service 支持其中一些值,并定义了其他值。下面总结了 Google API Discovery Service 支持的 typeformat 值的完整列表。

类型值 格式值 含义
any 该属性可以是任何类型。由 JSON 架构规范定义。
any google.protobuf.Value 该属性具有 google.protobuf.Value 类型的 JSON 表示形式。
array 一个 JavaScript 值数组。items 属性指示数组值的架构。由 JSON 架构规范定义。
array google.protobuf.ListValue 该属性具有 google.protobuf.ListValue 类型的 JSON 表示法。
boolean 布尔值,可以是“true”或“false”。由 JSON 架构规范定义。
integer int32 32 位带符号整数。其最小值为 -2,147,483,648,最大值为 2,147,483,647(含)。
integer uint32 32 位无符号整数。其最小值为 0,最大值为 4,294,967,295(含)。
number double 双精度 64 位 IEEE 754 浮点。
number float 单精度 32 位 IEEE 754 浮点。
object JavaScript 对象。由 JSON 架构规范定义。
object google.protobuf.Struct 该属性具有 google.protobuf.Struct 类型的 JSON 表示形式。
object google.protobuf.Any 该属性的 JSON 表示形式为 google.protobuf.Any 类型。
string 任意字符串。由 JSON 架构规范定义。
string byte 填充的 base64 编码字节字符串,使用网址和文件名安全字母表(有时称为“网络安全”或“base64url”)进行编码。由 RFC4648 定义。
string date RFC3339 日期,格式为 YYYY-MM-DD。在 JSON 架构规范中定义。
string date-time 采用世界协调时间 (UTC) 的 RFC3339 时间戳。格式为 yyyy-MM-ddTHH:mm:ss.SSSZ。毫秒部分(“.SSS”)是可选的。在 JSON 架构规范中定义。
string google-datetime 采用世界协调时间 (UTC) 的 RFC3339 时间戳。格式为 yyyy-MM-ddTHH:mm:ss.SSSZ。毫秒部分(“.SSS”)是可选的。
string google-duration 字符串以后缀“s”(表示秒)结尾,后跟秒,其中纳秒表示小数秒。英文句点始终用作小数点,而不是英文逗号。
string google-fieldmask 以逗号分隔的字符串名称。字段名称以驼峰式命名规则表示。
string int64 64 位带符号整数。其最小值为 -9,223,372,036,854,775,808,最大值为 9,223,372,036,854,775,807(含)。
string uint64 64 位无符号整数。其最小值为 0,最大值为 (2^64)-1(含)。