آنچه در این صفحه می خوانید:
- معرفی جی سان (JSON)
- تاریخچه جی سان (JSON)
- کاربرد جی سان (JSON)
- ویژگی های جی سان (JSON)
- انواع داده های جی سان (JSON)
- سینتکس کامل جی سان (JSON)
معرفی جی سان (JSON)
JavaScript Object Notation به اختصار (JSON) جی سان به معنای نشانه گذاری شی جاوااسکریپت، یک فرمول تبادل داده ای سبک وزن است. خواندن و نوشتن آن برای انسان ها و تجزیه و تولید آن برای ماشین ها آسان است. JSON یک زیر مجموعه از زبان برنامه نویسی جاوااسکریپت، استاندارد ECMA-262 نسخه سوم است. JSON یک فرمت متن است که به طور کامل زبانی مستقل است اما از قوانینی که برای برنامه نویسان خانواده زبان C آشنا است، از جمله سی پلاس پلاس، سی شارپ، جاوا، جاوااسکریپت، پرل، پایتون و بسیاری دیگر استفاده می کند. این ویژگی ها، JSON را یک زبان ایده آل برای مبادله داده کرده است. JSON بر اساس دو ساختار ساخته شده است: مجموعه ای از نام / ارزش: در زبان های مختلف، این به عنوان یک شی، رکورد، ساختار، فرهنگ لغت، جدول هش، لیست کلید شده یا آرایه انجمنی تحقق می یابد. یک فهرست مرتب شده از ارزش ها: در بیشتر زبان ها، این به صورت آرایه، بردار، لیست یا دنباله در نظر گرفته می شود.
JavaScript Object Notation یک فرمت فایل با استاندارد آزاد یا فرمت تبادل داده است که از متن قابل خواندن توسط انسان برای انتقال اشیاء داده ها متشکل از جفت ویژگی و انواع داده های آرایه (یا هر مقدار سریال قابل انتقال دیگر) استفاده می کند. این یک فرمت داده بسیار متداول است و برنامه های متنوعی مانند جایگزینی برای اکس ام ال در سیستم های AJAX دارد.
JSON یک فرمت داده مستقل از زبان است. این از JavaScript گرفته شده است، اما بسیاری از زبان های برنامه نویسی مدرن شامل کد برای تولید و تجزیه داده های فرمت JSON هستند. نوع رسمی رسانه اینترنتی برای JSON برنامه کاربردی / JSON است. نام های JSON از پسوند json. استفاده می کنند.
تاریخچه جی سان (JSON)
JSON از عدم نیاز به پروتکل ارتباطی سرور به مرورگر در real-time و بدون استفاده از پلاگین های مرورگر مانند Flash روش های غالب مورد استفاده در اوایل دهه 2000 است. داگلاس کراكفورد ابتدا قالب JSON را مشخص و محبوب كرد. مخفف این اصطلاح در State Software، شرکتی بود که توسط شرکت Crockford و دیگران در مارس 2001 بنیانگذاری شد. بنیانگذاران موافقت کردند که سیستمی بسازند که از قابلیت های استاندارد مرورگر استفاده کند و لایه انتزاعی را برای توسعه دهندگان وب ایجاد کند تا برنامه های وب مستقیمی ایجاد کنند. اتصال دوتایی پایدار به یک سرور وب با نگه داشتن دو اتصال پروتکل (HTTP) و بازیافت آن ها قبل از زمان استاندارد مرورگر اگر در صورت عدم تبادل اطلاعات بیشتر.
بنیانگذاران بحث میزگردی داشتند و رای دادند كه آیا باید فرمت داده JSML یا JSON را فراخوانی كنند، و همچنین تحت چه نوع مجوز برای در دسترس قرار دادن آن قرار بگیرند. كراكفورد بندي را به مجوز JSON اضافه كرد كه در آن مي گويد: "نرم افزار بايد براي خوب و نه شر" مورد استفاده قرار گيرد تا كتابخانه هاي JSON را در هنگام تمسخر وكلاي حقوقدانان شركت و كساني كه بسيار مجهز هستند، بصورت اوپن سورس قرار گيرد. چیپ مورینگ استار ایده برای فریمورک برنامه کاربردی در نرم افزار دولتی را توسعه داد. از طرف دیگر، این بند منجر به مشکلات سازگاری مجوز JSON با سایر مجوزهای اوپن سورس شد.
پس از کشف قابلیت های اولیه Ajax، digiGroups، Noosh و دیگران از این فریم ها برای انتقال اطلاعات به قسمت تصویری مرورگر کاربر استفاده می کردند بدون اینکه زمینه بصری یک برنامه وب را تازه کنند، تحقق برنامه های کاربردی وب غنی در real-time را تنها با استفاده از استاندارد های HTTP، HTML و JavaScript انجام دهند. JSON مبتنی بر زیر مجموعه ای از زبان جاوااسکریپت بود و معمولاً با Javascript استفاده می شود، اما یک فرمت داده مستقل از زبان است. کد تجزیه و تولید داده های JSON به راحتی در بسیاری از زبان های برنامه نویسی در دسترس است. وب سایت JSON کتابخانه های JSON را به صورت زبان فهرست می کند.
اگرچه در ابتدا JSON تبلیغ می شد و اعتقاد بر این بود که زیر مجموعه سخت افزاری JavaScript و ECMAScript است، اما ناخواسته اجازه می دهد تا برخی از کاراکترهای کشف نشده در رشته های غیرقانونی در ادبیات رشته JavaScript و ECMAScript غیرقانونی باشند. JSON زیر مجموعه سخت افزاری ECMAScript از نسخه های تجدید نظر زبان 2019 در زبان است. موارد قابلیت انتقال داده را در زیر مشاهده کنید.
در اکتبر 2013، Ecma International چاپ اولین نسخه استاندارد JSON ECMA-404 خود را منتشر کرد. در 13 دسامبر سال 2017، کار گروه مهندسی اینترنت استاندارد اینترنت RFC 8259 را منتشر کرد، همچنین با نام STD 90 شناخته می شود، که RFC 7159 را پشت سر گذاشت.
کاربرد جی سان (JSON)
از آنجا که فرمت JSON فقط متن است، به راحتی می توانید به سرور ارسال شده و از طریق هر زبان برنامه نویسی به عنوان فرمت داده استفاده شود. جاوا اسکریپت یک تابع داخلی ()JSON.parse برای تبدیل یک رشته، نوشته شده با فرمت JSON، به اشیا نیتیو JavaScript دارد. بنابراین، اگر داده ها را از یک سرور دریافت می کنید، با فرمت JSON، می توانید از آن مانند سایر شی JavaScript استفاده کنید. نمونه ای از مکان استفاده از این، پاسخ های وب سرویس است. در قدیم، وب سرویس ها از XML به عنوان فرمت داده اصلی خود برای انتقال داده های برگشتی استفاده می کردند، اما از آنجا که JSON ظاهر شد (فرمت JSON در RFC 4627 توسط داگلاس کراکفورد مشخص شده است) و این فرمت که بسیار سبک وزن است استفاده شد.
به عنوان یک زبان پیکربندی
در حالی که JSON یک فرمت سریال سازی داده است، اما استفاده ad hoc را به عنوان یک زبان پیکربندی مشاهده کرده است. در این حالت استفاده، پشتیبانی از نظرات و سایر ویژگی ها مفید به نظر می رسد، که منجر به ایجاد غیر استاندارد JSON شده است.
AJAJ
JavaScript ناهمزمان و JSON (یا AJAJ) به همان روش صفحه پویای وب با Ajax اشاره می کنند، اما به جای اکس ام ال، JSON فرمت داده است. AJAJ یک روش توسعه وب است که امکان ایجاد یک صفحه وب را برای درخواست داده های جدید پس از بارگیری در مرورگر وب فراهم می کند. به طور معمول داده های جدید را در پاسخ به اقدامات کاربر در آن صفحه، از سرور ارائه می دهد. به عنوان مثال، آنچه کاربر درون جعبه جستجو تایپ می کند، کد سمت مشتری سپس به سرور ارسال می کند، که بلافاصله با یک لیست کشویی موارد موجود در پایگاه داده پاسخ می دهد.
کد جاوا اسکریپت زیر نمونه ای از مشتری است که از XMLHttpRequest برای درخواست داده با فرمت JSON از یک سرور استفاده می کند. (برنامه نویسی سمت سرور حذف شده است؛ باید برای درخواست های سرویس به URL حاوی یک رشته با فرمت JSON تنظیم شود.)
JSON-RPC
JSON-RPC یک پروتکل فراخوانی از راه دور (RPC) است که در JSON ساخته شده است و به عنوان جایگزینی برای XML-RPC یا SOAP استفاده می شود. این پروتکل ساده است که تنها تعداد معدودی از انواع و دستورات داده را تعریف می کند. JSON-RPC به سیستم اجازه می دهد تا اعلان ها را ارسال کند (اطلاعات به سرور که نیازی به پاسخ ندارد) و تماس های متعدد به سرور که می تواند به صورت غیرقابل پاسخ باشد.
ویژگی های جی سان (JSON)
ساختار استاندارد
همانطور که تاکنون دیدیم اشیاء JSON دارای یک ساختار استاندارد هستند که باعث می شود مشاغل توسعه دهندگان کد خواندن و نوشتن کد را آسان کنند زیرا آن ها می دانند از JSON چه انتظاری دارند.
سبک وزن
هنگام کار با AJAX، بارگیری سریع و غیر همزمان همزمان داده ها بدون درخواست بارگیری مجدد صفحه، بسیار مهم است. از آنجا که JSON وزن سبک است، سریعتر می توانید داده های درخواست شده را دانلود و آپلود کنید.
مقیاس پذیر
JSON مستقل از زبان است، به این معنی که می تواند با بیشتر زبان برنامه نویسی مدرن به خوبی کار کند. بیایید بگوییم اگر ما نیاز به تغییر زبان سمت سرور داشته باشیم، در این حالت پیش می رود که با این تغییر پیش برویم زیرا ساختار JSON برای همه زبان ها یکسان است.
انواع داده های جی سان (JSON)
انواع داده های اصلی JSON عبارتند از:
- Number: یک عدد اعشاری امضا شده است که ممکن است حاوی یک بخش کسری باشد و ممکن است از نماد E نمایی استفاده کند، اما نمی تواند شامل غیر عددی مانند NaN باشد. فرمت هیچ فرقی بین عدد صحیح و نقطه شناور نمی گذارد. جاوا اسکریپت برای تمام مقادیر عددی خود از یک قالب دو نقطه ای با دقت استفاده می کند، اما سایر زبان های پیاده سازی JSON ممکن است اعداد مختلف را رمزگذاری کنند.
- String: دنباله ای از صفر یا بیشتر از کاراکتر های یونیکد. رشته ها با علائم دو نرخی محدود می شوند و از یک نحو فرار از پشت استفاده می کنند.
- Boolean: هر یک از مقادیر صحیح یا غلط است.
- Array: لیست سفارش داده شده از صفر یا بیشتر مقادیر، که هر یک از آن ها ممکن است از هر نوع باشد. آرایه ها از نماد براکت مربع با عناصر جدا شده از کاما استفاده می کنند.
- Object: یک مجموعه بدون هماهنگ از جفت های ارزش نام است که در آن نامها (که کلیدها نیز نامیده می شوند) رشته هستند. هدف از اشیاء برای نمایش آرایه های انجمنی است، جایی که هر کلید در یک شی منحصر به فرد است اشیا با براکت مشخص شده اند و برای جدا کردن هر جفت از کاما استفاده می کنند، در حالی که در هر جفت بزرگتر : "" کاراکتر یا نام را از مقدار آن جدا می کند.
- null: مقدار خالی، با استفاده از کلمه null
Whitespace مجاز است و یا در اطراف یا بین عناصر نحوی (مقادیر و نگارشی، اما در یک مقدار رشته نیست) نادیده گرفته می شود. چهار کاراکتر خاص برای این منظور از Whitespace در نظر گرفته شده اند: space،horizontal tab،line feed و carriage return. به طور خاص، علامت سفارش بایت نباید توسط یک اجرای همخوانی ایجاد شود (اگرچه هنگام تجزیه JSON ممکن است پذیرفته شود). JSON نحوی برای اظهار نظر ارائه نمی دهد. نسخه های اولیه JSON (مانند آنچه توسط RFC 4627 مشخص شده است) لازم بود که یک متن معتبر JSON فقط از یک شی یا یک نوع آرایه تشکیل شده باشد، که می تواند انواع دیگری را نیز در درون خود داشته باشد.
سینتکس کامل جی سان (JSON)
سینتکس کامل JSON به شرح زیر است:
JSON = null
or true or false
or JSONNumber
or JSONString
or JSONObject
or JSONArray
JSONNumber = - PositiveNumber
or PositiveNumber
PositiveNumber = DecimalNumber
or DecimalNumber . Digits
or DecimalNumber . Digits ExponentPart
or DecimalNumber ExponentPart
DecimalNumber = 0
or OneToNine Digits
ExponentPart = e Exponent
or E Exponent
Exponent = Digits
or + Digits
or - Digits
Digits = Digit
or Digits Digit
Digit = 0 through 9
OneToNine = 1 through 9
JSONString = ""
or " StringCharacters "
StringCharacters = StringCharacter
or StringCharacters StringCharacter
StringCharacter = any character
except " or \ or U+0000 through U+001F
or EscapeSequence
EscapeSequence = \" or \/ or \\ or \b or \f or \n or \r or \t
or \u HexDigit HexDigit HexDigit HexDigit
HexDigit = 0 through 9
or A through F
or a through f
JSONObject = { }
or { Members }
Members = JSONString : JSON
or Members , JSONString : JSON
JSONArray = [ ]
or [ ArrayElements ]
ArrayElements = JSON
or ArrayElements , JSON
whitespace ناچیز ممکن است در هر نقطه به جز در داخل JSONNumber موجود باشد (اعداد نباید دارای whitespace باشد) یا JSONString (جایی که به عنوان کاراکتر متناظر در رشته تعبیر می شود، یا باعث خطایی می شود). کاراکتر tab (U + 0009)، carriage return (U + 000D)، line feed (U + 000A) و space (U + 0020) تنها کاراکترهای معتبر whitespace هستند.