JSON Schema
JSON Schema مشخصاتی برای قالب مبتنی بر JSON برای تعریف ساختار داده های جیسون است. این Schema تحت پیش نویس IETF که در سال 2011 منقضی شد، نوشته شده است.
JSON Schema:
- قالب داده های موجود خود را توصیف می کند.
- اسناد تمیز و قابل خواندن برای انسان و دستگاه.
- اعتبارسنجی کامل ساختاری، مفید برای Automated Testing.
- اعتبارسنجی کامل ساختاری، اعتبارسنجی داده های ارسالی کلاینت.
کتابخانه های اعتبار سنجی JSON Schema
در حال حاضر چندین validator برای زبان های برنامه نویسی مختلف در دسترس است. کاملترین و سازگارترین آن ها JSV است.
زبان های برنامه نویسی | کتاخانه ها |
C | WJElement (LGPLv3) |
Java | json-schema-validator (LGPLv3) |
.NET | Json.NET (MIT) |
ActionScript 3 | Frigga (MIT) |
Haskell | aeson-schema (MIT) |
Python | Jsonschema |
Ruby | autoparse (ASL 2.0); ruby-jsonschema (MIT) |
PHP | php-json-schema (MIT). json-schema (Berkeley) |
JavaScript | Orderly (BSD); JSV; json-schema; Matic (MIT); Dojo; Persevere (modified BSD or AFL 2.0); schema.js. |
مثال JSON Schema
در زیر یک مثال از JSON schema را مشاهده می کنید که کاتالوگ محصولات کلاسیک را شرح می دهد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Product", "description": "A product from Acme's catalog", "type": "object", "properties": { "id": { "description": "The unique identifier for a product", "type": "integer" }, "name": { "description": "Name of the product", "type": "string" }, "price": { "type": "number", "minimum": 0, "exclusiveMinimum": true } }, "required": ["id", "name", "price"] } |
در جدول زیر می توانید مهمترین کلمات کلیدی قابل استفاده در Schema را مشاهده کنید:
ردیف | توضیحات |
1 | $schema کلمه کلیدی $schema بیان می کند که این schema با توجه به مشخصات پیش نویس v4 نوشته شده است. |
2 | title به منظور مشخص کردن یک عنوان برای schema استفاده می شود. |
3 | description توضیحات مختصری در مورد schema. |
4 | type اولین محدودیت را بر روی داده های JSON ما تعریف می کند (باید یک JSON Object باشد). |
5 | properties کلیدهای مختلف را به همراه نوع مقادیر، کمترین و بیشترین مقداری قابل پذیریش برای استفاده در فایل JSON تعریف می کند. |
6 | required لیستی از پراپرتی های لازم را نگه می دارد. |
7 | minimum این محدودیتی است که بر روی مقدار اعمال می شود و کمترین مقداری قابل پذیرش را نشان می دهد. |
8 | maximum این محدودیتی است که بر روی مقدار اعمال می شود و بیشترین مقداری قابل پذیرش را نشان می دهد. |
9 | maxLength طول رشته نمونه به عنوان حداکثر تعداد کاراکترهای آن تعریف شده است. |
10 | minLength طول رشته نمونه به عنوان حداقل تعداد کاراکترهای آن تعریف شده است. |
11 | pattern اگه نمونه رشته با عبارت منظم مطابقت داشته باشد، معتر است. |
برای مشاهده لیست کامل کلمات کلیدی قابل استفاده در schema می توانید به سایت json-schema.org مراجعه کنید. Schema تعریف شده در بالا می تواند برای بررسی اعتبار کد زیر قابل استفاده است.
1 2 3 4 5 6 7 8 9 10 11 12 | [ { "id": 2, "name": "An ice sculpture", "price": 12.50, }, { "id": 3, "name": "A blue mouse", "price": 25.50, } ] |
هیچ نظری ثبت نشده است