您可以使用參數和結構定義的 type
和 format
屬性,判斷屬性的資料類型。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 支援的 type
和 format
值完整清單。
類型值 | 格式化值 | 意義 |
---|---|---|
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 (含首尾兩值)。 |