جی‌سان

(تغییرمسیر از JSON)

نشانه‌گذاری شیء جاوااسکریپت (به انگلیسی: JavaScript Object Notation) با کوته‌نوشت جی‌سان (به انگلیسی: JSON، ‎/ˈsən/‎ یا ‎/ˈˌsɒn/‎)، یک استاندارد باز متنیِ سبک برای انتقال داده‌ها است به گونه‌ای که برای انسان نیز خوانا باشد. جی‌سان از زبان اسکریپت‌نویسی جاوااسکریپت در نشان‌دادن ساختمان داده‌های ساده و آرایه‌های انجمنی مشتق شده‌است. با وجود ارتباط عمیقی که با جاوااسکریپت دارد، جی‌سان مستقل از زبان است و مفسرهایش تقریباً برای هر زبانی موجود هستند.

JSON vector logo.svg
پسوند(های) نام پرونده
.json
نوع رسانهٔ اینترنتی
application/json
کد فایل‌بندیTEXT
گونهتبادل داده
نیاکانجاوا اسکریپت
استاندارد بین‌المللیSTD 90/RFC 8259, ECMA-404, ISO/IEC 21778:2017
قالب آزاد؟آری
وبگاه

قالب جی‌سان در ابتدا توسط داگلاس کراکفورد مشخص و در RFC4627 شرح داده شده‌است. نوع رسانهٔ اینترنتی رسمی آن، application/json و پسوند نام پرونده‌های جی‌سان ‎.json است.

جی‌سان بیشتر برای سریالایز و انتقال ساختمان داده‌ها از طریق ارتباطی شبکه‌ای به‌کار گرفته می‌شود. بیشترین استفادهٔ آن برای انتقال داده‌ها بین یک کارساز و یک برنامهٔ وبی به‌عنوان جایگزینی برای اکس‌ام‌ال است.[۱]

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

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

  • اعداد (صحیح یا حقیقی)
  • رشته (یونی‌کدهایی که با «"» محصور شده...)
  • مقدار بولی (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>

منابعویرایش