JSON جی سون

جي‌سان يا JSON (JavaScript Object Notation) يك فرمت تبادل داده سبك (lightweight) مي‌باشد كه خواندن و نوشتن آن براي انسان و توليد و پارس كردن آن براي ماشين‌ها آسان است. اين زبان بر مبناي يك زير مجموعه از زبان برنامه‌نويسي JavaScript ، استاندارد ECMA-262 ويرايش سوم – دسامبر 1999‌، است. JSON بصورت متني (text) بوده و كاملاً مستقل از زبان بكار رفته است، اما از قوانيني استفاده مي‌كند كه براي برنامه‌نويسان زبان‌هاي خانواده C (شامل C ، C++ ، Java ، JavaScript ، Perl ، Python ، و بسياري زبان‌هاي ديگر) آشنا مي‌باشد.‌ اين خصوصيات JSON را يك زبان تبادل‌داده‌اي ايده‌آل كرده است.

JSON بر اساس دو ساختار ساخته شده:

  • يك مجموعه از زوج‌هاي نام/ارزش (name/value). در زبان‌هاي گوناگون اين ساختار يك شيء (object) ، ساختار (struct) ، ديكشنري (dictionary) ، جدول مخلوط (hash table) ، ليست كليددار (keyed list) يا آرايه انجمني (associative array) شناخته مي‌شود. • يك ليست منظم از ارزش‌ها. در بسياري از زبان‌ها اين ساختار يك آرايه ( array) ، بردار (vector) ، ليست (list) ، يا دنباله (sequence) شناخته مي‌شود.
  • اينها ساختار داده‌هاي عمومي هستند. همه زبان‌هاي برنامه‌نويسي مدرن يكي از آنها را پشتيباني مي‌كنند. منطقي است كه يك فرمت داده قابل استفاده توسط زبان‌هاي برنامه‌نويسي مختلف بر مبناي اين ساختارها باشد.

در JSON از فرم‌هاي زير استفاده مي‌شود:

يك شيء (object) يك مجموعه نامنظم از زوج‌هاي نام/ارزش است. يك object‌ با { (آكولاد باز) شروع، و با } (آكولاد بسته) تمام مي‌شود. در انتهاي هر نام يك : (دو نقطه) قرار مي‌گيرد و زوج‌هاي نام/ارزش با , (ويرگول) جدا مي‌شوند.


تعریف JSON

JSON (JavaScript Object Notation) یک فرمت تبادل داده سبک وزن است. خواندن و نوشتن برای انسان آسان است. تجزیه و تولید برای ماشین ها آسان است. این بر اساس زیرمجموعه‌ای از استاندارد زبان برنامه‌نویسی جاوا اسکریپت ECMA-262 نسخه سوم – دسامبر 1999 است. JSON یک قالب متنی است که کاملاً مستقل از زبان است اما از قراردادهایی استفاده می‌کند که برای برنامه‌نویسان خانواده C، از جمله C، آشنا هستند. C++، C#، Java، JavaScript، Perl، Python و بسیاری دیگر. این ویژگی ها JSON را به یک زبان ایده آل برای تبادل داده تبدیل می کند.


JSON بر روی دو ساختار ساخته شده است:

  • مجموعه ای از جفت نام/مقدار. در زبان های مختلف، این به عنوان یک شی ، رکورد، ساختار، فرهنگ لغت، جدول هش، فهرست کلیددار یا آرایه انجمنی تحقق می یابد .
  • لیستی از مقادیر مرتب شده در بیشتر زبان ها، این به صورت یک آرایه ، بردار، لیست یا دنباله تحقق می یابد.

اینها ساختارهای داده جهانی هستند. تقریباً تمام زبان های برنامه نویسی مدرن به یک شکل از آنها پشتیبانی می کنند. منطقی است که قالب داده ای که با زبان های برنامه نویسی قابل تعویض است نیز بر اساس این ساختارها باشد.

در JSON، آنها این اشکال را به خود می گیرند:

یک شیء مجموعه ای نامرتب از جفت نام/مقدار است. یک شی با { پرانتز چپ شروع می شود و با پرانتز راست به پایان می رسد . بعد از هر نام : کولون و جفت های نام/مقدار با کاما از هم جدا می شوند .

آرایه مجموعه مرتب شده ای از مقادیر است . یک آرایه با [ براکت چپ شروع می شود و با براکت راست به پایان می رسد . مقادیر با کاما از هم جدا می شوند.

یک مقدار می تواند یک رشته در گیومه های دوتایی، یا یک عدد ، یا درست یا نادرست یا تهی ، یا یک شی یا یک آرایه باشد . این ساختارها می توانند تو در تو باشند.

4- یک رشته دنباله ای از صفر یا بیشتر کاراکترهای یونیکد است که در گیومه های دوتایی پیچیده شده و از بک اسلش استفاده می کند. یک کاراکتر به عنوان یک رشته کاراکتر منفرد نشان داده می شود. یک رشته بسیار شبیه یک رشته C یا جاوا است.


1- یک شیء مجموعه ای نامرتب از جفت نام/مقدار است. یک شی با { پرانتز چپ شروع می شود و با پرانتز راست به پایان می رسد . بعد از هر نام : کولون و جفت های نام/مقدار با کاما از هم جدا می شوند .


آرایه مجموعه مرتب شده ای از مقادیر است . یک آرایه با [ براکت چپ شروع می شود و با براکت راست به پایان می رسد . مقادیر با کاما از هم جدا می شوند .


یک مقدار می تواند یک رشته در گیومه های دوتایی، یا یک عدد ، یا درست یا نادرست یا تهی ، یا یک شی یا یک آرایه باشد . این ساختارها می توانند تو در تو باشند.


4- یک رشته دنباله ای از صفر یا بیشتر کاراکترهای یونیکد است که در گیومه های دوتایی پیچیده شده و از بک اسلش استفاده می کند. یک کاراکتر به عنوان یک رشته کاراکتر منفرد نشان داده می شود. یک رشته بسیار شبیه یک رشته C یا جاوا است.


یک عدد بسیار شبیه یک عدد C یا جاوا است، با این تفاوت که از فرمت‌های هشت‌گانه و هگزادسیمال استفاده نمی‌شود.


فضای خالی را می توان بین هر جفت توکن درج کرد. به جز چند جزئیات رمزگذاری، که به طور کامل زبان را توصیف می کند.


تعاریف

عنصر json

فرم مک کیمن گزیده ای از فصل 22 نحوه عملکرد جاوا اسکریپت است.
فرم مک کیمن نمادی برای بیان گرامرها است. این یک فرم Backus-Naur ساده شده با فضای خالی قابل توجه و حداقل استفاده از متاکاراکترها است.

گرامر فهرستی از یک یا چند قانون است.

  • دستور زبان
  • قوانین

نقطه کد یونیکد U+0020 به عنوان فاصله استفاده می شود. نقطه کد یونیکد U+000A به عنوان خط جدید استفاده می شود.

کد

json
عناصر element

value
object
array
string
number
“true”
“false”
“null”

object
‘{‘ ws ‘}’
‘{‘ members ‘}’

members
member
member ‘,’ members

member
ws string ws ‘:’ element

array
‘[‘ ws ‘]’
‘[‘ elements ‘]’

elements
element
element ‘,’ elements

element
ws value ws

string
‘”‘ characters ‘”‘

characters
“”
character characters

character
‘0020’ . ’10FFFF’ – ‘”‘ – ‘\’
‘\’ escape

escape
‘”‘
‘\’
‘/’
‘b’
‘f’
‘n’
‘r’
‘t’
‘u’ hex hex hex hex

hex
digit
‘A’ . ‘F’
‘a’ . ‘f’

number
integer fraction exponent

integer
digit
onenine digits
‘-‘ digit
‘-‘ onenine digits

digits
digit
digit digits

digit
‘0’
onenine

onenine
‘1’ . ‘9’

fraction
“”
‘.’ digits

exponent
“”
‘E’ sign digits
‘e’ sign digits

sign
“”
‘+’
‘-‘

ws
“”
‘0020’ ws
‘000A’ ws
‘000D’ ws
‘0009’ ws


واژه ها

در برنامه‌نویسی رایانه‌ای، فاصله خالی (به انگلیسی: Whitespace )، یک نویسه (کاراکتر) یا رشته نویسه می‌باشد، که نمایش دهندهٔ فاصلهٔ افقی یا عمودی در نویسه‌نگاری (تایپوگرافی) می‌باشد.Whitespace 

***


مشاهده استاندارد تبادل داده ECMA-404 JSON .

********

فهرست بهترین ادیتورهای آنلاین

برنامه ها

JSON Viewer


به تعریف ویکی پدیا

نوع‌های داده‌ای، دستور زبان و نمونه

نوع‌های داده‌ای سادهٔ جی‌سان عبارت‌اند از:

  • اعداد (صحیح یا حقیقی)
  • رشته (یونی‌کدهایی که با «”» محصور شده…)
  • مقدار بولی (true یا false، درست یا نادرست)
  • آرایه (دنبالهٔ دارای ترتیبی از مقدارها، جدا شده با ویرگول (,) و محصور شده با «[» و «]»)
  • شیء (مجموعه‌ای از جفت‌های کلید مقداری، جدا شده با ویرگول (,) و محصور شده با «{» و «}»، کلید می‌بایست که یک رشته باشد)
  • تهی (به انگلیسی: null)

نمونهٔ زیر یک شیء در جی‌سان است که یک شخص را شرح می‌دهد. در این شیء نوع داده‌ای متنی برای نام و نام خانوادگی، نوع داده‌ای عددی برای سن، یک شیء برای ذخیرهٔ نشانی فرد و یک فهرست (یک آرایه) برای ذخیرهٔ شماره‌های تلفن شخص است:

نمونهٔ زیر یک شیء در جی‌سان است که یک شخص را شرح می‌دهد.
نوعبرای
نوع داده‌ای متنی نام و نام خانوادگی
داده‌ای عددیسن
یک شیء برای ذخیرهٔ نشانی فرد
یک فهرست (یک آرایه) برای ذخیرهٔ شماره‌های تلفن شخص
{
    "firstName": "John",
    "lastName": "Smith",
    "age": 25,
    "address": {
        "streetAddress": "21 2nd Street",
        "city": "New York",
        "state": "NY",
        "postalCode": "10021"
    },
    "phoneNumber": [
        {
            "type": "home",
            "number": "212 555-1234"
        },
        {
            "type": "fax",
            "number": "646 555-4567"
        }
    ]
}

هردوی این اکس‌ام‌ال‌ها اطلاعات مشابهی با نمونهٔ جی‌سون با شیوه‌های مختلف دارا هستند:

<person>
  <firstName>John</firstName>
  <lastName>Smith</lastName>
  <age>25</age>
  <address>
    <streetAddress>21 2nd Street</streetAddress>
    <city>New York</city>
    <state>NY</state>
    <postalCode>10021</postalCode>
  </address>
  <phoneNumbers>
    <phoneNumber type="home">212 555-1234</phoneNumber>
    <phoneNumber type="fax">646 555-4567</phoneNumber>
  </phoneNumbers>
</person>
<person firstName="John" lastName="Smith" age="25">
  <address streetAddress="21 2nd Street" city="New York" state="NY" postalCode="10021"/>
  <phoneNumbers>
     <phoneNumber type="home" number="212 555-1234"/>
     <phoneNumber type="fax"  number="646 555-4567"/>
  </phoneNumbers>
</person>

******

منابع: