النوع والتنسيق

يمكن استخدام السمتَين type وformat في المَعلمات والمخططات لتحديد نوع بيانات السمة. تشير السمة type إلى نوع السمة عند إرسالها في طلبات واستجابات JSON (يتوافق JSON مع مجموعة صغيرة من أنواع البيانات، راجِع json.org للحصول على التفاصيل). تقدّم السمة format معلومات إضافية حول النوع الأساسي. ستتضمّن المواقع دائمًا السمة type، ولكن قد يتضمّن بعضها أيضًا السمة format.

على سبيل المثال، لا يمكن تمثيل عدد صحيح 64 بت في JSON (لأنّ JavaScript وJSON يتيحان أعدادًا صحيحة تصل إلى 2^53). لذلك، يجب تمثيل عدد صحيح 64 بت كسلسلة في طلبات/ردود JSON. وبالتالي، سيتم ضبط السمة type على "string"، ولكن سيتم ضبط السمة format على "int64" للإشارة إلى أنّها عدد صحيح 64 بت.

تحدّد مواصفات JSON Schema مجموعة من القيم الشائعة للسمة format. تتيح خدمة Google APIs Discovery Service بعض هذه القيم، وتحدّد قيمًا أخرى أيضًا. في ما يلي ملخّص للقائمة الكاملة بقيم type وformat التي تتيحها خدمة Google APIs Discovery Service.

نوع القيمة تنسيق القيمة المعنى
any يمكن أن يكون الموقع من أي نوع. يتم تحديدها من خلال مواصفات JSON Schema.
any google.protobuf.Value يحتوي الموقع على تمثيل JSON لنوع google.protobuf.Value.
array مصفوفة JavaScript للقيم تشير السمة items إلى المخطط الخاص بقيم المصفوفة. محدَّد بمواصفات JSON Schema.
array google.protobuf.ListValue تحتوي السمة على تمثيل JSON لنوع google.protobuf.ListValue.
boolean قيمة منطقية، إما "true" أو "false". محدَّد بمواصفات JSON Schema.
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 عدد نقطة عائمة IEEE 754 بسرعة 32 بت وبدقة أحادية
object كائن JavaScript محدَّد بمواصفات JSON Schema.
object google.protobuf.Struct تحتوي السمة على تمثيل JSON لنوع google.protobuf.Struct.
object google.protobuf.Any تحتوي السمة على تمثيل JSON لنوع google.protobuf.Any.
string سلسلة عشوائية محدَّد بمواصفات JSON Schema.
string byte سلسلة بايتات مضافة ومشفّرة بترميز base64، ومشفّرة باستخدام أبجدية آمنة لعنوان URL واسم ملف (يُشار إليها أحيانًا باسم "آمنة على الويب" أو "base64url"). محدّد حسب RFC4648
string date تاريخ RFC3339 بالتنسيق YYYY-MM-DD يتم تحديدها في مواصفات JSON Schema.
string date-time طابع زمني بتنسيق RFC3339 بالتوقيت العالمي المتفق عليه يجب أن يكون هذا التنسيق yyyy-MM-ddTHH:mm:ss.SSSZ. جزء الملّي ثانية (".SSS") اختياري. يتم تحديدها في مواصفات JSON Schema.
string google-datetime طابع زمني بتنسيق RFC3339 بالتوقيت العالمي المتفق عليه يجب أن يكون هذا التنسيق yyyy-MM-ddTHH:mm:ss.SSSZ. جزء الملّي ثانية (".SSS") اختياري.
string google-duration تنتهي السلسلة باللاحقة "s" (تشير إلى الثواني) ويسبقها عدد الثواني، مع التعبير عن النانو ثانية ككسر من الثانية. يتم دائمًا استخدام النقطة كفاصل عشري، وليس الفاصلة.
string google-fieldmask سلسلة يتم فيها فصل أسماء الحقول بفاصلة يتم تمثيل أسماء الحقول باستخدام اصطلاحات التسمية lower-camel.
string int64 عدد صحيح 64 بت موقّع وتبلغ قيمته الدنيا -9,223,372,036,854,775,808 وقيمته القصوى 9,223,372,036,854,775,807 (شاملة).
string uint64 عدد صحيح 64 بت بدون علامة وتبلغ قيمته الدنيا 0 وقيمته القصوى (2^64)-1 (شاملة).