Open Cloud แทนข้อมูลขาเข้าและขาออกเป็น JSON มาตรฐาน. ประเภท JSON มาตรฐาน ได้แก่ ข้อความ, ค่า, วัตถุ, อาร์เรย์, หมายเลข และ สตริง บางประเภทมีข้อควรพิจารณาเป็นพิเศษในการแทนข้อมูลที่เฉพาะเจาะจง ซึ่งจะอธิบายในส่วนถัดไป
Timestamp
ใช้ RFC 3339 โดยผลลัพธ์ที่สร้างขึ้นจะเป็น Z-normalized เสมอ และใช้จำนวนจุดทศนิยม 0, 3, 6 หรือ 9. ออฟเซ็ตอื่นที่ไม่ใช่ "Z" ก็ยอมรับได้เช่นกัน
ตัวอย่าง Timestamp
{ "timestamp": "1972-01-01T10:00:20.021Z" }
Duration
ผลลัพธ์ที่สร้างขึ้นจะมีจุดทศนิยม 0, 3, 6 หรือ 9 ขึ้นอยู่กับความละเอียดที่ต้องการ ตามด้วยคำต่อท้าย "s" ยอมรับจุดทศนิยมใด ๆ (ก็ไม่มีได้เช่นกัน) ตราบใดที่พวกมันเข้ากับความละเอียดของนาโนวินาที และคำต่อท้าย "s" เป็นสิ่งจำเป็น ช่วงค่าต้องอยู่ระหว่าง -315,576,000,000 ถึง 315,576,000,000 วินาที รวมทั้งหมด
ตัวอย่าง Duration
{
"duration-9": "1.000340012s",
"duration-0": "1s"
}
Bytes
ข้อมูลไบต์ถูกเข้ารหัสเป็นสตริงโดยใช้การเข้ารหัส base64 มาตรฐานที่มีการเติมช่อง หรือการเข้ารหัส base64 แบบมาตรฐานหรือ URL-safe ที่มีหรือไม่มีการเติมก็ได้รับการสนับสนุน
ตัวอย่าง Bytes
{
"bytes": "YWJjMTIzIT8kKiYoKSctRbLx+"
}
FieldMask
FieldMask คือสตริงที่อธิบายถึงฟิลด์ที่จะทำการกระทำเมื่อทำการขอข้อมูล เพื่อสร้างฟิลด์มัสค์ คุณต้องระบุชื่อฟิลด์ JSON ที่คั่นด้วยเครื่องหมายจุลภาคในสตริง ตัวอย่างเช่น หากมีการให้ข้อมูลดังนี้:
ตัวอย่าง JSON
{
"foo": {
"a": "c",
"b": "d"
},
"bar": "x",
"baz": "y"
}
หากคุณต้องการระบุฟิลด์มัสค์เพื่ออัปเดตค่าเพียง foo.b และ bar ฟิลด์มัสค์จะมีลักษณะดังนี้: foo.b, bar
ใน Open Cloud วิธีการอัปเดตที่รองรับฟิลด์มัสค์จะมีพารามิเตอร์ชื่อ updateMask ซึ่งคุณสามารถระบุฟิลด์มัสค์เป็นค่าได้ที่นี่
Money
โดยทั่วไปใช้เพื่อกำหนดราคา ประเภท Money มีรหัสสกุลเงินสามตัว (ตามที่กำหนดใน ISO 4217) และจำนวนซึ่งใช้ประเภท Decimal ตัวอย่างเช่น คุณอาจแทนราคาที่ $17.99 แบบนี้:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 1799,
"exponent": -2
}
}
สินค้าของ Creator Store ต้องการ exponent เป็น -9 ดังนั้นราคาเดียวกันจึงมีลักษณะดังนี้:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 17990000000,
"exponent": -9
}
}
Decimal
แทนค่าตัวเลขทศนิยมในรูปแบบที่คล้ายกับการเขียนเชิงวิทยาศาสตร์ โดยมีเลขที่มีความสำคัญและเลขชี้กำลัง
ตัวอย่าง:
17
{"significand": 17, "exponent": 0} หรือเพียงแค่ {"significand": 17}
-0.005
{"significand": -5, "exponent": -3}
33.5 ล้าน (33,500,000)
{"significand": 335, "exponent": 5}
11/8 (1.375)
{"significand": 1375, "exponent": -3}
เมื่อ exponent มีค่ามากกว่า 0 มันจะเป็นตัวแทนจำนวนของศูนย์ที่ตามหลังตัวเลขที่มีความสำคัญ เมื่อ exponent มีค่าน้อยกว่า 0 มันจะแทนจำนวนของตัวเลขที่สำคัญที่อยู่หลังจุดทศนิยม เมื่อ exponent เท่ากับ 0 ค่าของ Decimal คือค่าของ significand.