JSON
جے ایس او این (جاوا اسکرپٹ آبجیکٹ نوٹیشن، تلفظ ؛ بھی) ایک اوپن اسٹینڈرڈ فائل فارمیٹ اور ڈیٹا انٹرچینج فارمیٹ ہے جو ڈیٹا آبجیکٹ کو اسٹور کرنے اور منتقل کرنے کے لیے انسانی پڑھنے کے قابل متن کا استعمال کرتا ہے جس میں ایٹریبیوٹ ویلیو جوڑے اور صف (یا دیگر سیریلائز ویلیوز) شامل ہیں۔ یہ ایک عام ڈیٹا فارمیٹ ہے جس کے الیکٹرانک ڈیٹا کے تبادلے میں متنوع استعمال ہوتے ہیں، بشمول سرورز کے ساتھ ویب ایپلی کیشنز کے۔ جے ایس او این ایک زبان سے آزاد ڈیٹا فارمیٹ ہے۔ یہ جاوا اسکرپٹ سے ماخوذ تھا، لیکن بہت سی جدید پروگرامنگ زبانوں میں جے ایس او این فارمیٹ ڈیٹا تیار کرنے اور تجزیہ کرنے کے لیے کوڈ شامل ہیں۔ جے ایس او این فائل کے نام توسیع. جے ایس او این استعمال کرتے ہیں۔ ڈگلس کرک فورڈ نے اصل میں 2000 کی دہائی کے اوائل میں جے ایس او این فارمیٹ کی وضاحت کی تھی۔ انہوں نے اور چپ مارننگ اسٹار نے اپریل 2001 میں پہلا جے ایس او این پیغام بھیجا۔ نام اور تلفظ 2017 کا بین الاقوامی معیار (ای سی ایم اے-404 اور آئی ایس او/آئی ای سی 21778:2017) واضح کرتا ہے کہ "جے ایس او این" کا تلفظ "جیسن اینڈ دی ارگوناٹس" میں ہوتا ہے۔ ای سی ایم اے-404 کے پہلے (2013) ایڈیشن میں تلفظ کو خطاب نہیں کیا گیا۔ یونکس اور لینکس سسٹم ایڈمنسٹریشن ہینڈ بک میں کہا گیا ہے کہ "ڈگلس کرک فورڈ، جنہوں نے جے ایس او این فارمیٹ کا نام رکھا اور اسے فروغ دیا، کہتے ہیں کہ اس کا تلفظ جیسن نام کی طرح ہے۔ لیکن کسی نہ کسی طرح ایسا لگتا ہے کہ "جے-سون" تکنیکی برادری میں زیادہ عام ہو گیا ہے۔ " کروک فورڈ نے 2011 میں کہا، "اس بارے میں بہت بحث ہے کہ آپ اس کا تلفظ کیسے کرتے ہیں، لیکن مجھے سختی سے پرواہ نہیں ہے۔" 2006 سے اس کی "معلوماتی" تفصیلات کے طور پر دستیاب ہونے کے بعد، جے ایس او این کو پہلی بار 2013 میں ای سی ایم اے-404 کے طور پر معیاری بنایا گیا تھا۔ ، جو 2017 میں شائع ہوا، انٹرنیٹ اسٹینڈرڈ ایس ٹی ڈی 90 کا موجودہ ورژن ہے، اور یہ ای سی ایم اے-404 کے مطابق ہے۔ اسی سال، جے ایس او این کو آئی ایس او/آئی ای سی 21778:2017 کے طور پر بھی معیاری بنایا گیا۔ ای سی ایم اے اور آئی ایس او/آئی ای سی معیارات صرف اجازت شدہ نحو کی وضاحت کرتے ہیں، جبکہ آر ایف سی کچھ حفاظتی اور باہمی تعاون کے تحفظات کا احاطہ کرتا ہے۔ جے ایس او این براؤزر پلگ ان جیسے فلیش یا جاوا ایپلٹ استعمال کیے بغیر ریئل ٹائم سرور سے براؤزر سیشن کمیونیکیشن پروٹوکول کی ضرورت سے پروان چڑھا، جو 2000 کی دہائی کے اوائل میں استعمال ہونے والے غالب طریقے تھے۔ کروک فورڈ نے سب سے پہلے جے ایس او این فارمیٹ کی وضاحت کی اور اسے مقبول بنایا۔ مخفف کا آغاز اسٹیٹ سافٹ ویئر سے ہوا، جو مارچ 2001 میں کروک فورڈ اور دیگر کے تعاون سے قائم کی گئی کمپنی تھی۔ شریک بانیوں نے ایک ایسا نظام بنانے پر اتفاق کیا جس میں معیاری براؤزر کی صلاحیتوں کا استعمال کیا گیا اور ویب ڈویلپرز کے لیے ایک تجریدی پرت فراہم کی گئی جس میں ریاستی ویب ایپلی کیشنز بنائیں جن میں دو ہائپر ٹیکسٹ ٹرانسفر پروٹوکول (ایچ ٹی ٹی پی) کنکشن کھول کر اور معیاری براؤزر ٹائم آؤٹ سے پہلے ری سائیکل کرکے ویب سرور سے مستقل ڈوپلیکس کنکشن تھا اگر مزید ڈیٹا کا تبادلہ نہیں کیا گیا۔ شریک بانیوں نے گول میز بحث کی اور ووٹ دیا کہ آیا ڈیٹا فارمیٹ جے ایس ایم ایل (جاوا اسکرپٹ مارک اپ لینگویج) یا جے ایس او این (جاوا اسکرپٹ آبجیکٹ نوٹیشن) کو کال کیا جائے، نیز اسے کس قسم کے لائسنس کے تحت دستیاب کرایا جائے۔ JSON.org ویب سائٹ 2001 میں شروع کی گئی تھی۔ دسمبر 2005 میں، یاہو! اس نے اپنی کچھ ویب خدمات جے ایس او این میں پیش کرنا شروع کیں۔ جے ایس او این لائبریریوں کا پیش خیمہ کارٹون نیٹ ورک کے لیے بچوں کے ڈیجیٹل اثاثہ تجارتی گیم پروجیکٹ کارٹون آربٹ ایٹ Communities.com (ریاست کے شریک بانیوں نے پہلے اس کمپنی میں کام کیا تھا) میں استعمال کیا گیا تھا، جس نے ڈی ایچ ٹی ایم ایل عناصر کو جوڑنے کے لیے ایک براؤزر سائیڈ پلگ ان کا استعمال کیا تھا (یہ نظام بھی 3 ڈی او کی ملکیت ہے)۔ ابتدائی ایجیکس صلاحیتوں کی دریافت کے بعد، ڈیجی گروپس، نوش اور دیگر نے ویب ایپلی کیشن کے بصری سیاق و سباق کو تازہ کیے بغیر صارف براؤزر کے بصری میدان میں معلومات منتقل کرنے کے لیے فریموں کا استعمال کیا، نیٹ اسکیپ 4.5 + اور آئی ای 5 + کی صرف معیاری ایچ ٹی ٹی پی، ایچ ٹی ایم ایل اور جاوا اسکرپٹ صلاحیتوں کا استعمال کرتے ہوئے حقیقی وقت کی بھرپور ویب ایپلی کیشنز کا احساس کیا۔ کروک فورڈ نے پھر پایا کہ جاوا اسکرپٹ کو اس طرح کے نظام کے لیے آبجیکٹ پر مبنی پیغام رسانی کے فارمیٹ کے طور پر استعمال کیا جا سکتا ہے۔ یہ نظام سن مائیکرو سسٹمز، Amazon.com اور ای ڈی ایس کو فروخت کیا گیا تھا۔ جے ایس او این جاوا اسکرپٹ اسکرپٹنگ زبان کے ذیلی سیٹ پر مبنی تھا (خاص طور پر، معیاری ای سی ایم اے-262 تیسرا ایڈیشن-دسمبر 1999) اور عام طور پر جاوا اسکرپٹ کے ساتھ استعمال ہوتا ہے، لیکن یہ زبان سے آزاد ڈیٹا فارمیٹ ہے۔ جے ایس او این ڈیٹا کو تجزیہ کرنے اور تیار کرنے کے لیے کوڈ بہت سی پروگرامنگ زبانوں میں آسانی سے دستیاب ہے۔ جے ایس او این کی ویب سائٹ زبان کے لحاظ سے جے ایس او این لائبریریوں کی فہرست دیتی ہے۔ اکتوبر 2013 میں، ایکما انٹرنیشنل نے اپنے جے ایس او این معیاری ایکما-404 کا پہلا ایڈیشن شائع کیا۔ اسی سال، بطور حوالہ ای سی ایم اے-404 استعمال کیا۔ 2014 میں، جے ایس او این کے انٹرنیٹ کے استعمال، سپرسیڈنگ اور (لیکن ای سی ایم اے-262 اور ای سی ایم اے-404 کو مرکزی حوالہ جات کے طور پر محفوظ کرنا) کے لیے مرکزی حوالہ بن گیا۔ نومبر 2017 میں، آئی ایس او/آئی ای سی جے ٹی سی 1/ایس سی 22 نے آئی ایس او/آئی ای سی 21778:2017 کو بین الاقوامی معیار کے طور پر شائع کیا۔ 13 دسمبر 2017 کو، انٹرنیٹ انجینئرنگ ٹاسک فورس نے شائع کیا، جو انٹرنیٹ اسٹینڈرڈ ایس ٹی ڈی 90 کا موجودہ ورژن ہے۔ کرک فورڈ نے جے ایس او این لائسنس میں ایک شق شامل کی جس میں کہا گیا ہے کہ "سافٹ ویئر کو اچھائی کے لیے استعمال کیا جائے گا، برائی کے لیے نہیں"، تاکہ جے ایس او این لائبریریوں کو اوپن سورس کیا جا سکے جبکہ کارپوریٹ وکلاء اور حد سے زیادہ پیڈینٹک لوگوں کا مذاق اڑایا جا سکے۔ دوسری طرف، اس شق کی وجہ سے جے ایس او این لائسنس کی دیگر اوپن سورس لائسنسوں کے ساتھ مطابقت کے مسائل پیدا ہوئے، کیونکہ اوپن سورس سافٹ ویئر اور فری سافٹ ویئر عام طور پر استعمال کے مقصد پر کوئی پابندی نہیں لگاتے ہیں۔ نحو مندرجہ ذیل مثال کسی شخص کی وضاحت کرنے والی ممکنہ جے ایس او این نمائندگی کو ظاہر کرتی ہے۔ "{" "پہلے نام" ":" "جان" "،" "آخری نام" ":" "اسمتھ" "،" "زندہ ہے" ": درست،" "عمر" ": 27،" "پتہ" ": {" "گلی کا پتہ" ":" "21 دوسری گلی" "،" "شہر" ":" "نیویارک" "،" "ریاست": "" NY ""، "" پوسٹل کوڈ "": "" 10021-3100 ""، "" فون نمبر "": [{"" ٹائپ "": "" ہوم ""، "" نمبر "": "" 212 555-1234 ""}، {"" ٹائپ "": "" آفس ""، "" نمبر "": "" 646 555-4567 ""]، "" چلڈرن "": ["" کیتھرین ""، "" تھامس " یہ جے ایس او این کے صرف "کنٹرول حروف" کی اجازت نہ دینے کا نتیجہ ہے۔ زیادہ سے زیادہ پورٹیبلٹی کے لیے، ان حروف کو بیک سلیش سے بچنا چاہیے۔ کھلے ماحولیاتی نظام میں جے ایس او این تبادلے کو یو ٹی ایف-8 میں انکوڈ کیا جانا چاہیے۔ انکوڈنگ مکمل یونیکوڈ کردار سیٹ کی حمایت کرتی ہے، بشمول بنیادی کثیر لسانی طیارہ (U + 0000 سے U + FFFF) کے باہر کے حروف۔ تاہم، اگر بچ جاتے ہیں، تو ان حروف کو یو ٹی ایف-16 سروگیٹ جوڑوں کا استعمال کرتے ہوئے لکھا جانا چاہیے۔ مثال کے طور پر، جے ایس او این میں ایموجی کردار کو شامل کرنے کے لیے: {"فیس": "′"}// یا {"فیس": "\uD83D\uDE10"} جے ایس او این زبان کی 2019 کی ترمیم کے مطابق ای سی ایم اے اسکرپٹ کا ایک سخت ذیلی سیٹ بن گیا۔ ڈیٹا کی اقسام جے ایس او این کی بنیادی ڈیٹا کی اقسام یہ ہیں: نمبر: ایک دستخط شدہ اعشاریہ نمبر جس میں ایک فریکشنل حصہ ہو سکتا ہے اور ایکسپونینشل ای نوٹیشن استعمال کر سکتا ہے، لیکن اس میں نان نمبرز جیسے کہ این اے این شامل نہیں ہو سکتے۔ شکل انٹیجر اور فلوٹنگ پوائنٹ کے درمیان کوئی فرق نہیں کرتی ہے۔ جاوا اسکرپٹ اپنی تمام عددی اقدار کے لیے IEEE-754 ڈبل صحت سے متعلق فلوٹنگ پوائنٹ فارمیٹ کا استعمال کرتا ہے (بعد میں بگ انٹ کی بھی حمایت کرتا ہے)، لیکن JSON کو لاگو کرنے والی دیگر زبانیں نمبروں کو مختلف طریقے سے انکوڈ کر سکتی ہیں۔ سٹرنگ: صفر یا اس سے زیادہ یونیکوڈ حروف کی ترتیب۔ سٹرنگز کو ڈبل کوٹیشن مارکس کے ساتھ حد بند کیا جاتا ہے اور بیک سلیش سے بچنے والے نحو کی حمایت کرتے ہیں۔ بولین: صحیح یا غلط اقدار میں سے کوئی بھی صف: صفر یا اس سے زیادہ عناصر کی ایک ترتیب شدہ فہرست، جن میں سے ہر ایک کسی بھی قسم کا ہو سکتا ہے۔ صفوں میں کوما سے الگ کردہ عناصر کے ساتھ مربع بریکٹ نوٹیشن کا استعمال کیا جاتا ہے۔ آبجیکٹ: نام اور قدر کے جوڑوں کا مجموعہ جہاں نام (جسے چابیاں بھی کہا جاتا ہے) تار ہوتے ہیں۔ موجودہ ای سی ایم اے معیار میں کہا گیا ہے: "جے ایس او این نحو ناموں کے طور پر استعمال ہونے والے تاروں پر کوئی پابندی عائد نہیں کرتا ہے، اس کے لیے نام کے تار منفرد ہونے کی ضرورت نہیں ہے، اور نام/قدر کے جوڑوں کی ترتیب کو کوئی اہمیت نہیں دیتا ہے۔" اشیاء کو گھوبگھرالی بریکٹ کے ساتھ محدود کیا جاتا ہے اور ہر جوڑے کو الگ کرنے کے لیے کوما کا استعمال کیا جاتا ہے، جبکہ ہر جوڑے کے اندر کالون ':' کردار کلید یا نام کو اس کی قیمت سے الگ کرتا ہے۔ null: ایک خالی قدر، جس میں لفظ null وائٹ اسپیس کا استعمال کیا جاتا ہے، اس کی اجازت ہے اور نحو عناصر کے ارد گرد یا ان کے درمیان نظر انداز کیا جاتا ہے (اقدار اور تعیین، لیکن سٹرنگ ویلیو کے اندر نہیں)۔ اس مقصد کے لیے چار مخصوص حروف کو وائٹ اسپیس سمجھا جاتا ہے: اسپیس، افقی ٹیب، لائن فیڈ، اور کیریج ریٹرن۔ خاص طور پر، بائٹ آرڈر کا نشان مطابقت پذیر نفاذ کے ذریعے پیدا نہیں کیا جانا چاہیے (حالانکہ جے ایس او این کو تجزیہ کرتے وقت اسے قبول کیا جا سکتا ہے)۔ جے ایس او این تبصرے کے لیے نحو فراہم نہیں کرتا۔ جے ایس او این کے ابتدائی ورژن (جیسے کے ذریعے متعین) کے لیے ضروری ہے کہ ایک درست جے ایس او این ٹیکسٹ صرف ایک آبجیکٹ یا ایک صف کی قسم پر مشتمل ہو، جس میں ان کے اندر دیگر اقسام شامل ہو سکتی ہیں۔ اس پابندی کو ختم کر دیا گیا تھا، جہاں جے ایس او این متن کو کسی بھی سیریلائزڈ ویلیو کے طور پر دوبارہ بیان کیا گیا تھا۔ جے ایس او این میں نمبر پروگرامنگ زبانوں میں ان کی نمائندگی کے حوالے سے اگنوسٹک ہیں۔ اگرچہ یہ صوابدیدی درستگی کی تعداد کو سیریلائز کرنے کی اجازت دیتا ہے، لیکن یہ پورٹیبلٹی کے مسائل کا باعث بن سکتا ہے۔ مثال کے طور پر، چونکہ انٹیجر اور فلوٹنگ پوائنٹ ویلیوز کے درمیان کوئی فرق نہیں کیا جاتا ہے، کچھ نفاذ 42، 42.0، اور 4.2E + 1 کو ایک ہی نمبر کے طور پر مان سکتے ہیں، جبکہ دیگر نہیں۔ جے ایس او این معیار عمل درآمد کی تفصیلات جیسے اوور فلو، انڈر فلو، درستگی کا نقصان، گول، یا دستخط شدہ صفر کے حوالے سے کوئی تقاضے نہیں کرتا ہے، لیکن یہ "اچھی انٹرآپریبلٹی" کے لیے آئی ای ای ای 754 بائنری 64 درستگی سے زیادہ کی توقع نہ کرنے کی سفارش کرتا ہے۔ فلوٹنگ پوائنٹ نمبر (جیسے بائنری 64) کی مشین سطح کی بائنری نمائندگی کو انسانی پڑھنے کے قابل اعشاریہ نمائندگی (جیسے جے ایس او این میں نمبر) میں سیریلائز کرنے میں کوئی موروثی درستگی کا نقصان نہیں ہے، کیونکہ ایسا کرنے کے لیے شائع شدہ الگورتھم موجود ہیں۔ بالکل اور بہتر طریقے سے۔ تبصرے جان بوجھ کر جے ایس او این سے خارج کر دیے گئے تھے۔ 2012 میں، ڈگلس کروک فورڈ نے اپنے ڈیزائن کے فیصلے کو اس طرح بیان کیا: "میں نے جے ایس او این سے تبصرے ہٹا دیے کیونکہ میں نے دیکھا کہ لوگ انہیں تجزیہ کی ہدایات کے انعقاد کے لیے استعمال کر رہے تھے، ایک ایسا عمل جس نے باہمی تعاون کو تباہ کر دیا ہوتا۔" جے ایس او این "ٹریلنگ کوما" کی اجازت نہیں دیتا، جو ڈیٹا ڈھانچے کے اندر آخری قدر کے بعد کوما ہے۔ استعمال میں آسانی کو بہتر بنانے کے لیے ٹریلنگ کوما جے ایس او این مشتقات کی ایک عام خصوصیت ہے۔ سیمنٹکس جبکہ جے ایس او این ڈیٹا کے تبادلے کے لیے ایک نحو فریم ورک فراہم کرتا ہے، غیر واضح ڈیٹا کے تبادلے کے لیے بھی جے ایس او این نحو کے مخصوص استعمال کے الفاظ پر پروڈیوسر اور صارف کے درمیان معاہدے کی ضرورت ہوتی ہے۔ جہاں اس طرح کا معاہدہ ضروری ہے اس کی ایک مثال جاوا اسکرپٹ نحو کے ذریعہ بیان کردہ ڈیٹا ٹائپز کی سیریلائزیشن ہے جو جے ایس او این معیار کا حصہ نہیں ہیں، مثال کے طور پر، تاریخ، فنکشن، باقاعدہ اظہار، اور غیر متعین۔ انٹرآپریبلٹی آر ایف سی 8259 جے ایس او این نحو کے کچھ پہلوؤں کو بیان کرتا ہے، جو وضاحتیں کے مطابق قانونی ہونے کے باوجود، انٹرآپریبلٹی کے مسائل کا سبب بن سکتے ہیں۔ کچھ جے ایس او این نفاذ صرف جے ایس او این متن کو قبول کرتے ہیں جو کسی شے یا صف کی نمائندگی کرتے ہیں۔ انٹرآپریبلٹی کے لیے، جے ایس او این کا تبادلہ کرنے والی ایپلی کیشنز کو ایسے پیغامات منتقل کرنے چاہئیں جو آبجیکٹ یا صف ہیں۔ وضاحتیں جے ایس او این آبجیکٹ کی اجازت دیتی ہیں جن میں ایک ہی نام کے متعدد اراکین ہوتے ہیں۔ نقل شدہ ناموں کے ساتھ اشیاء پر کارروائی کرنے کے نفاذ کا طرز عمل غیر متوقع ہے۔ انٹرآپریبلٹی کے لیے، جے ایس او این آبجیکٹ منتقل کرتے وقت ایپلی کیشنز کو ڈپلیکیٹ ناموں سے گریز کرنا چاہیے۔ وضاحتیں خاص طور پر کہتی ہیں کہ جے ایس او این آبجیکٹ میں اراکین کی ترتیب اہم نہیں ہے۔ انٹرآپریبلٹی کے لیے، ایپلی کیشنز کو ممبر کے آرڈر کو معنی تفویض کرنے سے گریز کرنا چاہیے چاہے پارسنگ سافٹ ویئر اس آرڈر کو دکھائی دے۔ اگرچہ وضاحتیں جے ایس او این نمبر لیٹرلز کی شدت یا درستگی پر کوئی حد نہیں رکھتی ہیں، لیکن وسیع پیمانے پر استعمال ہونے والی جاوا اسکرپٹ کا نفاذ انہیں آئی ای ای ای 754 "بائنری 64" مقداروں کے طور پر محفوظ کرتا ہے۔ انٹرآپریبلٹی کے لیے، ایپلی کیشنز کو ان نمبروں کو منتقل کرنے سے گریز کرنا چاہیے جن کی نمائندگی اس طرح سے نہیں کی جا سکتی، مثال کے طور پر 1E400 یا 3.141592653589793238462643383279۔ اگرچہ وضاحتیں جے ایس او این متن میں یونیکوڈ حروف کی کریکٹر انکوڈنگ کو محدود نہیں کرتی ہیں، لیکن نفاذ کی اکثریت یو ٹی ایف-8 انکوڈنگ کو فرض کرتی ہے۔ انٹرآپریبلٹی کے لیے، ایپلی کیشنز کو ہمیشہ اور صرف جے ایس او این پیغامات کو یو ٹی ایف-8 میں انکوڈ کرنا چاہیے۔ وضاحتیں بائٹ کے سلسلے کو منتقل کرنے سے منع نہیں کرتی ہیں جو یونیکوڈ حروف کی صحیح نمائندگی نہیں کرتے ہیں۔ انٹرآپریبلٹی کے لیے، ایپلی کیشنز کو ایسے پیغامات منتقل کرنے چاہئیں جن میں ایسی کوئی بائٹ ترتیب نہ ہو۔ وضاحتیں اس بات کی پابندی نہیں کرتی ہیں کہ ایپلی کیشنز یونیکوڈ سٹرنگز کا موازنہ کیسے کرتی ہیں۔ انٹرآپریبلٹی کے لیے، ایپلی کیشنز کو ہمیشہ کوڈ یونٹ کے لحاظ سے اس طرح کے موازنہ کوڈ یونٹ انجام دینا چاہیے۔ 2015 میں، آئی ای ٹی ایف نے آر ایف سی 7493 شائع کیا، جس میں "آئی-جے ایس او این میسج فارمیٹ" کو بیان کیا گیا، جو جے ایس او این کا ایک محدود پروفائل ہے جو جے ایس او این کے نحو اور پروسیسنگ کو ہر ممکن حد تک ان باہمی تعاون کے مسائل سے بچنے کے لیے مجبور کرتا ہے۔ میٹا ڈیٹا اور اسکیما جے ایس او این ٹیکسٹ کے لیے آفیشل مائیم ٹائپ "ایپلیکیشن/جے ایس او این" ہے، اور زیادہ تر جدید نفاذات نے اسے اپنایا ہے۔ غیر سرکاری ایم آئی ایم ای قسم "ٹیکسٹ/جے ایس او این" یا مواد کی قسم "ٹیکسٹ/جاوا اسکرپٹ" کو بھی بہت سے سروس فراہم کنندگان، براؤزرز، سرورز، ویب ایپلی کیشنز، لائبریریوں، فریم ورک اور اے پی آئی کے ذریعے میراث کی وجوہات کی بنا پر سپورٹ کیا جاتا ہے۔ قابل ذکر مثالوں میں گوگل سرچ اے پی آئی، یاہو!، فلکر، فیس بک اے پی آئی، لفٹ فریم ورک، اور ڈوجو ٹول کٹ 0.4 شامل ہیں۔ جے ایس او این اسکیما توثیق، دستاویزات، اور تعامل کے کنٹرول کے لیے جے ایس او این ڈیٹا کے ڈھانچے کی وضاحت کے لیے جے ایس او این پر مبنی فارمیٹ کی وضاحت کرتا ہے۔ یہ کسی دی گئی ایپلی کیشن کے لیے درکار جے ایس او این ڈیٹا کے لیے ایک معاہدہ فراہم کرتا ہے، اور اس ڈیٹا میں کس طرح ترمیم کی جا سکتی ہے۔ جے ایس او این اسکیما ایکس ایم ایل اسکیما (ایکس ایس ڈی) کے تصورات پر مبنی ہے لیکن جے ایس او این پر مبنی ہے۔ جیسا کہ ایکس ایس ڈی میں، اسکیما اور ڈیٹا دونوں کے لیے ایک ہی سیریلائزیشن/ڈیسیریلائزیشن ٹولز استعمال کیے جا سکتے ہیں، اور یہ خود بیان کرنے والا ہے۔ اس کی وضاحت آئی ای ٹی ایف کے انٹرنیٹ ڈرافٹ میں کی گئی ہے، جو فی الحال 2020-12 ڈرافٹ میں ہے، جو 28 جنوری 2021 کو جاری کیا گیا تھا۔ مختلف پروگرامنگ زبانوں کے لیے کئی توثیق کار دستیاب ہیں، جن میں سے ہر ایک مطابقت کی مختلف سطحوں کے ساتھ ہے۔ معیاری فائل نام کی توسیع. json ہے۔ جے ایس او این معیار آبجیکٹ حوالہ جات کی حمایت نہیں کرتا ہے، لیکن جے ایس او این پر مبنی آبجیکٹ حوالہ جات کے لیے ایک آئی ای ٹی ایف ڈرافٹ معیار موجود ہے۔ جے ایس او این-آر پی سی ایک ریموٹ پروسیجر کال (آر پی سی) پروٹوکول ہے جو جے ایس او این پر بنایا گیا ہے، ایکس ایم ایل-آر پی سی یا ایس او اے پی کے متبادل کے طور پر۔ یہ ایک سادہ پروٹوکول ہے جو صرف مٹھی بھر ڈیٹا ٹائپز اور کمانڈز کی وضاحت کرتا ہے۔ جے ایس او این-آر پی سی ایک سسٹم کو نوٹیفیکیشنز (سرور کو ایسی معلومات جس کے جواب کی ضرورت نہیں ہے) اور سرور کو متعدد کالز بھیجنے کی اجازت دیتا ہے جس کا جواب آرڈر سے باہر دیا جا سکتا ہے۔ غیر متزلزل جاوا اسکرپٹ اور جے ایس او این (یا اے جے اے جے) سے مراد وہی متحرک ویب پیج کا طریقہ کار ہے جو ایجیکس ہے، لیکن ایکس ایم ایل کے بجائے، جے ایس او این ڈیٹا فارمیٹ ہے۔ اے جے اے جے ایک ویب ڈویلپمنٹ تکنیک ہے جو ویب پیج کو ویب براؤزر میں لوڈ ہونے کے بعد نئے ڈیٹا کی درخواست کرنے کی صلاحیت فراہم کرتی ہے۔ عام طور پر یہ اس ویب پیج پر صارف کے اقدامات کے جواب میں سرور سے نیا ڈیٹا پیش کرتا ہے۔ مثال کے طور پر، صارف سرچ باکس میں جو ٹائپ کرتا ہے، کلائنٹ سائیڈ کوڈ پھر سرور کو بھیجتا ہے، جو فوری طور پر مماثل ڈیٹا بیس آئٹمز کی ڈراپ ڈاؤن فہرست کے ساتھ جواب دیتا ہے۔ جے ایس او این نے ایڈہاک استعمال کو ترتیب کی زبان کے طور پر دیکھا ہے۔ تاہم، یہ تبصرے کی حمایت نہیں کرتا ہے۔ 2012 میں، جے ایس او این کے تخلیق کار، ڈگلس کرک فورڈ نے جے ایس او این میں تبصرے کے بارے میں یہ کہا تھا جب اسے ترتیب کی زبان کے طور پر استعمال کیا جاتا تھا: "میں جانتا ہوں کہ تبصرے کی کمی کچھ لوگوں کو اداس کرتی ہے، لیکن ایسا نہیں ہونا چاہیے۔ فرض کریں کہ آپ کنفیگریشن فائلوں کو رکھنے کے لیے جے ایس او این کا استعمال کر رہے ہیں، جن کی آپ تشریح کرنا چاہتے ہیں۔ آگے بڑھیں اور اپنی پسند کے تمام تبصرے داخل کریں۔ پھر اسے اپنے جے ایس او این تجزیہ کار کے حوالے کرنے سے پہلے جے ایس من کے ذریعے پائپ کریں۔ مونگو ڈی بی اپنے دستاویز پر مبنی ڈیٹا بیس کے لیے جے ایس او این جیسا ڈیٹا استعمال کرتا ہے۔ کچھ رشتہ دار ڈیٹا بیس، جیسے پوسٹگری ایس کیو ایل اور مائی ایس کیو ایل نے مقامی جے ایس او این ڈیٹا ٹائپ کے لیے سپورٹ شامل کی ہے۔ یہ ڈویلپرز کو جے ایس او این ڈیٹا کو کسی دوسرے ڈیٹا فارمیٹ میں تبدیل کیے بغیر براہ راست رشتہ دار ڈیٹا بیس میں ذخیرہ کرنے کی اجازت دیتا ہے۔ سیفٹی جے ایس او این جاوا اسکرپٹ کا ذیلی سیٹ ہونے کی وجہ سے یہ غلط فہمی پیدا ہو سکتی ہے کہ جے ایس او این ٹیکسٹ کو جاوا اسکرپٹ ایول () فنکشن میں منتقل کرنا محفوظ ہے۔ یہ محفوظ نہیں ہے، کچھ درست جے ایس او این متن کی وجہ سے، خاص طور پر وہ جو جاوا اسکرپٹ کوڈ پر مشتمل ہیں یا 2019 میں جاوا اسکرپٹ کی خصوصیات کو اپ ڈیٹ کیے جانے تک درست نہیں ہیں، اور اس لیے پرانے انجن اس کی حمایت نہیں کر سکتے ہیں۔ انٹرنیٹ سے من مانی کوڈ پر عمل درآمد کی وجہ سے ہونے والے بہت سے نقصانات سے بچنے کے لیے، ایک نیا فنکشن، سب سے پہلے ای سی ایم اے اسکرپٹ کے پانچویں ایڈیشن میں شامل کیا گیا تھا، جسے 2017 تک تمام بڑے براؤزرز سپورٹ کرتے ہیں۔ غیر معاون براؤزرز کے لیے، ڈگلس کرک فورڈ کی طرف سے ایک API مطابقت پذیر جاوا اسکرپٹ لائبریری فراہم کی جاتی ہے۔ اس کے علاوہ، ٹی سی 39 کی تجویز "سبسیوم جے ایس او این" نے ای سی ماسکرپٹ کو زبان کی 2019 کی ترمیم کے مطابق ایک سخت جے ایس او این سپر سیٹ بنا دیا۔ مختلف جے ایس او این پارسر کے نفاذ کو سروس سے انکار کے حملے اور بڑے پیمانے پر تفویض کی کمزوری کا سامنا کرنا پڑا ہے۔ متبادل جے ایس او این کو ایکس ایم ایل کے کم سر والے متبادل کے طور پر فروغ دیا جاتا ہے کیونکہ ان دونوں فارمیٹس کو حقیقی دنیا کے حالات میں تخلیق، پڑھنے اور ڈیکوڈنگ کے لیے وسیع پیمانے پر سپورٹ حاصل ہے جہاں وہ عام طور پر استعمال ہوتے ہیں۔ ایکس ایم ایل کے علاوہ، مثالوں میں سی ایس وی اور جے ایس او این کے سپرسیٹ شامل ہو سکتے ہیں۔ نیز، گوگل پروٹوکول بفرز اس کردار کو پر کر سکتے ہیں، حالانکہ یہ ڈیٹا انٹرچینج زبان نہیں ہے۔ ایکس ایم ایل ایکس ایم ایل کا استعمال ساختی ڈیٹا کو بیان کرنے اور اشیاء کو سیریلائز کرنے کے لیے کیا گیا ہے۔ ایک ہی قسم کے ڈیٹا کے تبادلے کے مقاصد کے لیے جے ایس او این کے طور پر ایک ہی قسم کے ڈیٹا ڈھانچے کی نمائندگی کرنے کے لیے مختلف ایکس ایم ایل پر مبنی پروٹوکول موجود ہیں۔ ڈیٹا کو ایکس ایم ایل میں کئی طریقوں سے انکوڈ کیا جا سکتا ہے۔ ٹیگ جوڑوں کا استعمال کرتے ہوئے سب سے زیادہ وسیع شکل کے نتیجے میں جے ایس او این کے مقابلے میں بہت بڑی (کرداروں کی گنتی میں) نمائندگی ہوتی ہے، لیکن اگر ڈیٹا کو صفات اور 'شارٹ ٹیگ' کی شکل میں محفوظ کیا جاتا ہے جہاں اختتامی ٹیگ کو تبدیل کیا جاتا ہے، تو نمائندگی اکثر جے ایس او این کے سائز کے برابر ہوتی ہے یا تھوڑی بڑی ہوتی ہے۔ تاہم، ایک ایکس ایم ایل خاصیت کی صرف ایک قدر ہو سکتی ہے اور ہر خاصیت ہر عنصر پر زیادہ سے زیادہ ایک بار ظاہر ہو سکتی ہے۔ ایکس ایم ایل "ڈیٹا" کو "میٹا ڈیٹا" (عناصر اور صفات کے استعمال کے ذریعے) سے الگ کرتا ہے، جبکہ جے ایس او این میں ایسا تصور نہیں ہے۔ ایک اور اہم فرق اقدار سے خطاب کرنا ہے۔ جے ایس او این میں سادہ "کلید" سے "قدر" کی نقشہ سازی کے ساتھ اشیاء ہوتی ہیں، جبکہ ایکس ایم ایل ایڈریسنگ "نوڈس" پر ہوتی ہے، جو سب ایکس ایم ایل پروسیسر کے ذریعے ایک منفرد آئی ڈی وصول کرتے ہیں۔ مزید برآں، ایکس ایم ایل معیار ایک مشترکہ خاصیت کی وضاحت کرتا ہے، جسے صارف واضح طور پر آئی ڈی سیٹ کرنے کے لیے استعمال کر سکتا ہے۔ ایکس ایم ایل ٹیگ کے ناموں میں کوئی بھی حرف نہیں ہو سکتا! "#$% & '() * +،/؛ <=>؟ @[\] ^ '{|} ~، اور نہ ہی کوئی خلائی کردار، اور اس کا آغاز، یا عددی ہندسوں سے نہیں ہو سکتا، جبکہ جے ایس او این چابیاں کر سکتی ہیں (چاہے کوٹیشن مارک اور بیک سلیش سے بچنا ہی پڑے)۔ ایکس ایم ایل اقدار حروف کے تار ہیں، جن میں کوئی بلٹ ان قسم کی حفاظت نہیں ہے۔ ایکس ایم ایل میں اسکیما کا تصور ہے، جو مضبوط ٹائپنگ، صارف سے متعین اقسام، پہلے سے طے شدہ ٹیگز، اور رسمی ڈھانچے کی اجازت دیتا ہے، جو ایکس ایم ایل اسٹریم کی باضابطہ توثیق کی اجازت دیتا ہے۔ جے ایس او این میں کئی اقسام بلٹ ان ہیں اور جے ایس او این اسکیما میں اسی طرح کا اسکیما تصور ہے۔ ایکس ایم ایل تبصرے کی حمایت کرتا ہے، جبکہ جے ایس او این نہیں کرتا ہے۔ تبصرے اور دیگر خصوصیات کے لیے سپرسیٹس سپورٹ کو مفید سمجھا گیا ہے، جس کی وجہ سے کئی غیر معیاری جے ایس او این سپرسیٹس بنائے گئے ہیں۔ ان میں ایچ جے ایس او این، ہوکون، اور جے ایس او این 5 (جو اپنے نام کے باوجود، جے ایس او این کا پانچواں ورژن نہیں ہے) شامل ہیں۔ یامل یامل ورژن 1.2 جے ایس او این کا ایک سپر سیٹ ہے ؛ پچھلے ورژن سختی سے مطابقت نہیں رکھتے تھے۔ مثال کے طور پر، بیک سلیش کے ساتھ سلیش سے بچنا جے ایس او این میں درست ہے، لیکن وائی اے ایم ایل میں درست نہیں تھا۔ یامل تبصرے کی حمایت کرتا ہے، جبکہ جے ایس او این نہیں کرتا ہے۔ سی ایس او این سی ایس او این ("کرسو اسکرپٹ آبجیکٹ نوٹیشن")، کی تعریف آر ایف سی 4627 کے ذریعہ مخصوص جے ایس او این کے اے بی این ایف گرامر میں چھوٹے گرامر کے اضافے کے طور پر کی گئی ہے۔ وائی اے ایم ایل کی طرح، یہ جے ایس او این کا ایک سخت سپر سیٹ ہے۔ وائی اے ایم ایل کے برعکس، ہر سی ایس او این ڈیٹا کا جے ایس او این میں آگے پیچھے ترجمہ کیا جا سکتا ہے، لہذا کوئی بھی ایسی لائبریری کا استعمال جاری رکھ سکتا ہے جو صرف جے ایس او این کو سمجھتی ہو، اور کسی کو موجودہ جے ایس او این کا ترجمہ کرنے کی ضرورت نہیں ہے۔ اس طرح کے جے ایس او این مساوات کے علاوہ، ڈیزائن کے تحفظات یہ تھے: لکھنے میں آسانی، یہ تبصروں کی حمایت کرتا ہے، سنگل + ڈبل حوالہ شدہ تار، متعدد لائنوں میں تار، بے کار کوما۔ تجزیہ کرنے میں آسانی، یہ ایل ایل (1) ہے اور واضح طور پر سیاق و سباق کی حساسیت سے بچتا ہے۔ جاوا اسکرپٹ سے مطابقت نہ ہونا سخت نہیں ہے، اس لیے ایچ ٹی ٹی پی پر سی ایس او این سے گریز کریں۔ سفید جگہیں اہم نہیں ہیں۔ YAML کی طرح، سخت سٹرنگ، ڈیٹا کی کوئی اقسام نہیں، مثال کے طور پر، TOML۔ اضافی ڈیٹا ٹائپ ڈیٹا فارمیٹ کا کام نہیں ہونا چاہیے، اور ہر عمل درآمد کو مشکل بنا دے گا۔ سی، جاوا اسکرپٹ، ازگر اور زنگ کے لیے کتب خانے موجود ہیں۔ Hocon Hocon ("ہیومن-آپٹیمائزڈ کنفیگ آبجیکٹ نوٹیشن" انسانی پڑھنے کے قابل ڈیٹا کے لیے ایک فارمیٹ ہے، اور جے ایس او این کا ایک سپر سیٹ ہے۔ ہوکون کے استعمال یہ ہیں: یہ بنیادی طور پر پلے فریم ورک کے ساتھ مل کر استعمال ہوتا ہے، اور اسے لائٹ بینڈ نے تیار کیا ہے۔ اسے Akka.NET اور کٹھ پتلی کے ذریعے. NET پروجیکٹوں کے لیے ترتیب کی شکل کے طور پر بھی سپورٹ کیا جاتا ہے۔ ٹیبیکو اسٹریمنگ: ہوکون ٹیبیکو اسٹریمنگ ریلیز 10 کے مطابق مصنوعات کے ٹیبیکو اسٹریمنگ فیملی (اسٹریم بیس، لائیو ویو، اور آرٹیفیکٹ مینجمنٹ سرور) کے لیے بنیادی کنفیگریشن فائل فارمیٹ ہے۔ یہ Exabeam ایڈوانسڈ اینالٹکس کے کئی ذیلی نظاموں کے لیے بنیادی ترتیب فائل فارمیٹ بھی ہے۔ جیتسی اسے "نئے" ترتیب نظام کے طور پر استعمال کرتا ہے اور. پراپرٹیز-فائلیں فال بیک کے طور پر جے ایس او این 5 جے ایس او این 5 ("جے ایس او این 5 ڈیٹا انٹرچینج فارمیٹ") جے ایس او این نحو کی ایک توسیع ہے جو جے ایس او این کی طرح درست جاوا اسکرپٹ نحو بھی ہے۔ وضاحتیں 2012 میں شروع کی گئیں اور 2018 میں ورژن 1.0 کے ساتھ ختم ہوئیں۔ جے ایس او این نحو میں اہم اختلافات یہ ہیں: اختیاری ٹریلنگ کوما غیر حوالہ شدہ آبجیکٹ کیز سنگل کوٹیڈ اور ملٹی لائن سٹرنگ اضافی نمبر فارمیٹس تبصرے جے ایس او این 5 نحو کو کچھ سافٹ ویئر میں جے ایس او این نحو کی توسیع کے طور پر سپورٹ کیا جاتا ہے، مثال کے طور پر ایس کیو ایلائٹ میں۔ جے ایس او این سی جے ایس او این 5 کی طرح ایک فارمیٹ ہے، جسے بنیادی طور پر مائیکروسافٹ "جے ایس او این سی" (تبصروں کے ساتھ جے ایس او این) کے نام سے استعمال کرتا ہے۔ تبصرے کے ساتھ جے ایس او این کو تجزیہ کریں سرکلر حوالہ جات کے ساتھ سٹرنگفائی آبجیکٹ سنگل لائن (//) کے ساتھ ساتھ بلاک تبصرے (/* */) کا استعمال کرتے ہیں جو ٹریلنگ کوما کو قبول کرتے ہیں، لیکن ان کی حوصلہ شکنی کی جاتی ہے اور ایڈیٹر وارننگ ڈیریویٹوز دکھائے گا۔ جے ایس او این کی تفصیلات پر یا اس سے کئی سیریلائزیشن فارمیٹس بنائے گئے ہیں۔ مثالوں میں جیو جے ایس او این، سادہ جغرافیائی خصوصیات جے ایس او این → یو آر ایل کی نمائندگی کے لیے ڈیزائن کیا گیا فارمیٹ، جے ایس او این ڈیٹا ماڈل جے ایس او این-ایل ڈی کے لیے ایک زبان سے آزاد ڈیٹا انٹرچینج فارمیٹ، جے ایس او این جے ایس او این-آر پی سی کا استعمال کرتے ہوئے منسلک ڈیٹا کو انکوڈنگ کرنے کا ایک طریقہ، جے ایس او این جے ایس او این ایم ایل میں انکوڈ کیا گیا ایک ریموٹ پروسیجر کال پروٹوکول، ایک ہلکی پھلکی مارک اپ زبان جو ایکس ایم ایل اور جے ایس او این مسکراہٹ (ڈیٹا انٹرچینج فارمیٹ) کے درمیان نقشہ بنانے کے لیے استعمال ہوتی ہے۔ یو بی جے ایس او این، ایک بائنری کمپیوٹر ڈیٹا انٹرچینج فارمیٹ جو جے ایس او این کی نقل کرتا ہے، لیکن ڈیٹا کے کم بائٹس کی ضرورت ہوتی ہے۔