القصة وراء منسق JSON
أصبح JSON اليوم الصيغة التي تتحدث بها معظم واجهات الويب البرمجية، ومع ذلك لم تصممه أي لجنة. لقد اكتُشف أكثر مما اختُرع: مجموعة فرعية صغيرة من JavaScript تبين أنها تكفي تمامًا لنقل البيانات بين البرامج.
صيغة اكتُشفت
نحو عام 2001 كان دوغلاس كروكفورد وزملاؤه في State Software يبحثون عن طريقة لتبادل البيانات بين المتصفح والخادم دون إضافات. استخدموا القيم الحرفية للكائنات والمصفوفات التي كانت JavaScript تفهمها أصلًا، وأعطوا الفكرة اسمًا، ونشروا القواعد على json.org، وهي قصيرة إلى حد أنها تتسع لظهر بطاقة عمل.
لماذا لا توجد تعليقات
أزال كروكفورد التعليقات من JSON مبكرًا لأن بعضهم بدأ يضع فيها تعليمات للمحلل، وكان ذلك سيكسر قابلية التشغيل البيني. ونصح بحذف التعليقات بأداة تصغير قبل التحليل. لهذا يبلّغ المنسق عن التعليق كحرف غير متوقع، ولهذا توجد صيغ مثل JSON5 وJSONC لملفات الإعدادات.
من صفحة ويب إلى معيار
وُصف JSON أول مرة في RFC 4627 عام 2006. ونشرت Ecma المعيار ECMA-404 عام 2013، واستبدلت IETF النصوص الأقدم بالمعيار RFC 8259 عام 2017، الذي يشترط UTF-8 في JSON المتبادل بين الأنظمة. ولم تتغير القواعد تقريبًا منذ json.org: كائنات ومصفوفات ونصوص وأرقام وtrue وfalse وnull.
الأرقام والمسارات
لا يحد JSON نفسه من الأرقام، لكن معظم المحللات تخزنها كقيم فاصلة عائمة بطول 64 بت، لذا قد تفقد الأعداد الصحيحة الأكبر من 9007199254740991 دقتها دون تنبيه. ولهذا تُرسل المعرّفات الكبيرة غالبًا كنصوص. وللإشارة إلى قيمة ما اقترح ستيفان غوسنر JSONPath عام 2007 مستلهمًا XPath، وأصبح المعيار RFC 9535 عام 2024. وتتبع المسارات التي ينسخها هذا المنسق تلك الكتابة بعلامة الدولار والأقواس المربعة.
الأسئلة المتداولة
من اخترع JSON؟
حدد دوغلاس كروكفورد صيغة JSON ونشرها في أوائل الألفية الثالثة، لكنه يقول إنه اكتشفها لأنها مجموعة فرعية موجودة أصلًا من JavaScript.
لماذا لا يسمح JSON بالفواصل الختامية أو علامات الاقتباس المفردة؟
أُبقيت القواعد صغيرة قدر الإمكان كي تحللها كل لغة بالطريقة نفسها. كل تسهيل إضافي فرصة أخرى لاختلاف محللين في النتيجة.
هل JSON هو نفسه كائن JavaScript؟
لا. JSON نص. يجب أن تستخدم المفاتيح علامات اقتباس مزدوجة، ولا يُسمح بالدوال وundefined والتعليقات وNaN وInfinity، رغم أن JavaScript تقبلها في الشيفرة.
هل أنت مستعد لتجربتها؟
افتح PictorX في متصفحك - بدون تثبيت، ولا يلزم وجود بطاقة ائتمان للبدء.
افتح منسق JSON