類型和格式

您可以使用參數和結構定義的 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 該屬性具有 google.protobuf.Any 類型的 JSON 表示法。
string 任意字串。由 JSON 結構定義規格定義。
string byte 經過填補的 Base64 編碼位元組字串,使用網址和檔案名稱安全字母編碼 (有時稱為「網路安全」或「Base64url」)。由 RFC4648 定義。
string date 以 YYYY-MM-DD 格式顯示的 RFC3339 日期。在 JSON 結構定義規格中定義。
string date-time 採用世界標準時間的 RFC3339 時間戳記。格式為 yyyy-MM-ddTHH:mm:ss.SSSZ。毫秒部分 (「.SSS」) 為選用項目。在 JSON 結構定義規格中定義。
string google-datetime 採用世界標準時間的 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 (含首尾兩值)。