آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

ساختار (Schema ) داده ای فرمت JSON

دوره های مرتبط با این مقاله

JSON –Schema (ساختار داده ای فرمت JSON)

Schema JSON یک ابزار قدرتمند است که ساختار و فرمت داده ای JSON را تعریف و اعتبار سنجی می کند. JSON Schema مزایای زیر را ارائه می دهد:

  1. فرمت جاری داده ها را تعریف می کند.
  2. مستندات روشن، خوانا برای انسان و ماشین.
  3. اعتبارسنجی ساختاری کامل، مناسب برای تست خودکار.
  4. اعتبارسنجی ساختاری کامل که اعتبار اطلاعات ارائه شده توسط کلاینت را می سنجد (validate می کند).

کتابخانه های اعتبارسنجی JSON Schema

امروزه Validatorهای متعددی برای زبان های مختلف برنامه نویسی وجود دارد. در حال حاضر جامع ترین و سازگارترین JSON Schema validator موجود، کتابخانه ی JSV می باشد.

کتابخانه
زبان برنامه نویسی
WJElement (LGPLv3)
C
json-schema-validator (LGPLv3)
Java
Json.NET (MIT)
.NET
Frigga (MIT)
ActionScript 3
aeson-schema (MIT)
Haskell
Jsonschema
Python
autoparse (ASL 2.0);ruby-jsonschema (MIT)
Ruby
php-json-schema (MIT). json-schema (Berkeley)
PHP
Orderly (BSD);JSV;json-schema;Matic (MIT);Dojo;Persevere (modified BSD or AFL 2.0);schema.js.
JavaScript

مثال از JSON Schema

در زیر نمونه ی ساده ی JSON schema را می بینید که یک کاتالوگ محصولات متعارف را پوشش می دهد:

{
 
  "$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 بر اساس مشخصات draft v4 نوشته شده است. در واقع از این واژه ی کلیدی برای بیان اینکه قطعه JSON جاری، بخشی از JSON Schema است استفاده می شود.
$schema
یک عنوان برای schema تعریف می کند.
title
با این کلیدواژه می توان شرح مختصری از داده های توصیف شده توسط schema ارائه داد.
description
اولین قید یا constraint ای که بر روی داده های JSON اعمال می شود را تعریف می کند: بایستی یک شی JSON باشد. به عبارت دیگر با این کلیدواژه (بخش کیلد از جفت کلید:مقدار) نوع داده ای مورد انتظار را مشخص می کنیم (فایل JSON ای که دریافت می شود باید از نوع مشخص شده باشد).
type
جفت های کلید-مقدار (یا به اصطلاح property های) داخل یک شی را توسط این کلیدواژه تعریف می کنیم. مقدار واژه ی کلیدی properties یک شی است که در آن هر کلید اسم property را مشخص می کند و مقدار هر کلید نیز یک JSON Schema است که برای اعتبارسنجی آن property بکار می رود.
properties
لیست property های الزامی را مشخص می کند. این کلید با لیستی از property های الزامی مقداردهی می شود.
required
یک قید است که بر روی مقدار اعمال شده و کم ترین مقدار عددی قابل قبول را مشخص می کند.
minimum
کلیدواژه ی exclusiveMaximum با مقدار بولی تنظیم می شود. اگر با true مقداردهی شده باشد، معنیش این است که بازه عددی مقدار بیشینه را شامل نمی شود (یعنی x ). اگر بر روی false تنظیم شده باشد (یا اصلا حاضر نباشد)، معنیش این است که بازه ی عددی مقدار بیشینه را نیز دربرمی گیرد (یعنی x ≤max).
exclusiveMinimum
این کلیدواژه یک قید است که بر روی مقدار اعمال شده و حداکثر مقدار (عددی) قابل قبول را تعیین می کند.
maximum
این کلیدواژه از نوع بولی است که در صورت تنظیم بودن بر روی مقدار true، تعیین می کند که بازه عددی نباید از مقدار بیشنیه مشخص شده بزرگتر باشد (x ). اگر با false مقدار دهی شده یا اصلا لحاظ نشده باشد، معنیش این است که مقدار بیشینه را نیز شامل می شود (x ≤max).
exclusiveMaximum
می توان با استفاده از کلیدواژه ی multipleOf یک عدد را تنها در صورتی پذیرفت که مضرب عدد مشخصی باشد (برای مثال 20 مضرب 10 است و معتبر محسوب می شوند، اما این امر در مورد عدد 23 صادق نیست). می توان این کلید را با هر عدد مثبتی مقداردهی کرد.
در واقع با این کلیدواژه یک عدد تنها در صورتی معتبر می باشد که نتیجه ی تقسیم آن بر مقدار کلید multipleOf، یک عدد صحیح باشد.
multipleOf
حداکثر تعداد کاراکتر مجاز نمونه رشته را مشخص می کند. اگر طول رشته از مقدار مشخص شده در این کلید بیشتر باشد، در اعتبارسنجی رد می شود.
maxLength
حداقل تعداد کاراکتر مجاز در یک رشته را مشخص می کند. بایستی این کلید را با عدد مثبت مقداردهی کرد. اگر طول یا تعداد کاراکتر رشته کمتر از مقدار مشخص شده در این کلید باشد، در اعتبارسنجی رد می شود.
minLength
نمونه رشته در صورتی که با الگو یا عبارت باقاعده (regular expression) مشخص شده منطبق باشد، معتبر محسوب می شود.
در واقع با کلیدواژه ی pattern می توان از عبارات با قاعده برای اعمال محدودیت و اعتبارسنجی رشته بهره گرفت.
pattern

حال می توان با schema ی فوق کد JSON زیر را اعتبارسنجی کرد:

[
  {
     "id": 2,
     "name": "An ice sculpture",
     "price": 12.50,
  },              
  {
     "id": 3,
     "name": "A blue mouse",
     "price": 25.50,
  }
]

کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده بوده و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.

  • 1690
  •    4
  • تاریخ ارسال :   1395/05/19

دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .