جیسان
نشانهگذاری شیء جاوااسکریپت (به انگلیسی: JavaScript Object Notation) با کوتهنوشت جیسان (به انگلیسی: JSON، /ˈdʒeɪsən/ یا /ˈdʒeɪˌsɒn/)، یک استاندارد باز متنیِ سبک برای انتقال دادهها است به گونهای که برای انسان نیز خوانا باشد. جیسان از زبان اسکریپتنویسی جاوااسکریپت در نشاندادن ساختمان دادههای ساده و آرایههای انجمنی مشتق شدهاست. با وجود ارتباط عمیقی که با جاوااسکریپت دارد، جیسان مستقل از زبان است و مفسرهایش تقریباً برای هر زبانی موجود هستند.
پسوند(های) نام پرونده | .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>