JSON
JSON ( تدوين كائنات جافا سكريبت ، يُنطق / ˈdʒeɪsən / أو / ˈdʒeɪˌsɒn / ) هو تنسيق ملفات قياسي مفتوح المصدر ، وتنسيق لتبادل البيانات ، يستخدم نصًا سهل القراءة لتخزين ونقل كائنات البيانات التي تتكون من أزواج اسم-قيمة ومصفوفات ( أو قيم أخرى قابلة للتسلسل ) . وهو تنسيق بيانات شائع الاستخدام وله استخدامات متنوعة في تبادل البيانات الإلكترونية ، بما في ذلك تطبيقات الويب مع الخوادم .
JSON هو تنسيق بيانات مستقل عن لغات البرمجة . وقد اشتُقّ من جافا سكريبت ، ولكن العديد من لغات البرمجة الحديثة تتضمن شيفرة برمجية لإنشاء وتحليل بيانات بتنسيق JSON. تستخدم أسماء ملفات JSON الامتداد .json.
قام دوغلاس كروكفورد بتحديد تنسيق JSON في أوائل العقد الأول من القرن الحادي والعشرين. [ 1 ] أرسل هو [ a ] وشيب مورنينغستار أول رسالة JSON في أبريل 2001.
التسمية والنطق
يُحدد المعيار الدولي لعام 2017 ( ECMA-404 و ISO / IEC 21778 :2017) أن كلمة "JSON" تُنطق /ˈdʒeɪ.sən/ ، كما في " Jason and The Argonauts " . [ 3 ] [ 4 ] لم تتناول الطبعة الأولى (2013 ) من ECMA-404 مسألة النطق. [ 5 ] قال كروكفورد في عام 2011: "هناك جدل كبير حول كيفية نطقها ، لكنني لا أهتم بذلك إطلاقًا". [ 1 ] يُعد النطق /ˈdʒeɪˌsɒn / نطقًا شائعًا آخر . [ 6 ]
المعايير
بعد أن أصبح RFC 4627 متاحًا كمواصفة "إرشادية" منذ عام 2006، تم توحيد JSON لأول مرة في عام 2013، تحت مسمى ECMA -404. [ 5 ] يُعد RFC 8259، الذي نُشر في عام 2017، الإصدار الحالي من معيار الإنترنت STD 90، وهو متوافق مع ECMA-404. [ 7 ] في العام نفسه، تم توحيد JSON أيضًا تحت مسمى ISO /IEC 21778:2017. [ 3 ] يصف معيارا ECMA و ISO/IEC الصيغة المسموح بها فقط، بينما يغطي RFC بعض اعتبارات الأمان وقابلية التشغيل البيني . [ 8 ]
تاريخ

نشأت JSON من الحاجة إلى بروتوكول اتصال جلسة الخادم بالمتصفح في الوقت الفعلي دون استخدام مكونات إضافية للمتصفح مثل Flash أو تطبيقات Java الصغيرة ، وهي الطرق السائدة المستخدمة في أوائل العقد الأول من القرن الحادي والعشرين. [ 9 ]
كان كروكفورد أول من حدد ونشر صيغة JSON. [ 1 ] نشأ الاختصار في شركة State Software، التي شارك كروكفورد وآخرون في تأسيسها في مارس 2001. اتفق المؤسسون على بناء نظام يستخدم إمكانيات المتصفح القياسية ويوفر طبقة تجريدية لمطوري الويب لإنشاء تطبيقات ويب ذات حالة، تتمتع باتصال ثنائي الاتجاه مستمر مع خادم الويب، وذلك عن طريق إبقاء اتصالين من بروتوكول نقل النص التشعبي (HTTP) مفتوحين وإعادة تدويرهما قبل انتهاء مهلة المتصفح القياسية في حال عدم تبادل المزيد من البيانات. عقد المؤسسون اجتماعًا جماعيًا وصوتوا على تسمية صيغة البيانات JSML (لغة ترميز جافا سكريبت) أو JSON (تدوين كائنات جافا سكريبت)، بالإضافة إلى نوع الترخيص الذي سيُتاح بموجبه. أُطلق موقع JSON.org [ 10 ] في عام 2001. في ديسمبر 2005، بدأت ياهو! بتقديم بعض خدماتها على الويب بصيغة JSON. [ 11 ]
استُخدمت نسخة أولية من مكتبات JSON في مشروع لعبة تداول الأصول الرقمية للأطفال، Cartoon Orbit، على موقع Communities.com، والذي اعتمد على إضافة للمتصفح مع تنسيق مراسلة خاص لمعالجة عناصر DHTML . بعد اكتشاف إمكانيات Ajax المبكرة ، استخدمت شركات مثل digiGroups وNoosh وغيرها الإطارات لنقل المعلومات إلى مجال رؤية متصفح المستخدم دون تحديث سياق عرض تطبيق الويب، مما أدى إلى إنشاء تطبيقات ويب غنية في الوقت الفعلي باستخدام إمكانيات HTTP وHTML وJavaScript القياسية فقط في متصفحي Netscape 4.0.5 والإصدارات الأحدث وInternet Explorer 5 والإصدارات الأحدث. ثم اكتشف كروكفورد إمكانية استخدام JavaScript كتنسيق مراسلة قائم على الكائنات لمثل هذا النظام. تم بيع النظام لشركات Sun Microsystems و Amazon.com و EDS .
استندت JSON إلى مجموعة فرعية من لغة البرمجة النصية JavaScript (وتحديدًا، معيار ECMA -262 الإصدار الثالث - ديسمبر 1999 [ 12 ] )، وتُستخدم عادةً مع JavaScript، إلا أنها صيغة بيانات مستقلة عن اللغة . يتوفر كود تحليل وإنشاء بيانات JSON بسهولة في العديد من لغات البرمجة . ويُدرج موقع JSON الإلكتروني مكتبات JSON حسب اللغة.
في أكتوبر 2013، نشرت منظمة إيكما الدولية الإصدار الأول من معيار JSON الخاص بها، ECMA-404. [ 5 ] وفي العام نفسه، استخدم RFC 7158 معيار ECMA-404 كمرجع. وفي عام 2014، أصبح RFC 7159 المرجع الرئيسي لاستخدامات JSON على الإنترنت، ليحل محل RFC 4627 و RFC 7158 (مع الإبقاء على ECMA-262 وECMA-404 كمرجعين رئيسيين). وفي نوفمبر 2017، نشرت اللجنة الفرعية 22 التابعة للجنة الفنية المشتركة 1 التابعة للمنظمة الدولية للمعايير/الكهروتقنية الدولية (ISO/IEC JTC 1/SC 22) معيار ISO/IEC 21778:2017 [ 3 ] كمعيار دولي. وفي 13 ديسمبر 2017، ألغت فرقة عمل هندسة الإنترنت (IETF) معيار RFC 7159 بنشرها RFC 8259 ، وهو الإصدار الحالي من معيار الإنترنت STD 90. [ 7 ]
أضاف كروكفورد بندًا إلى رخصة JSON ينص على أن "يُستخدم البرنامج للخير لا للشر"، وذلك بهدف جعل مكتبات JSON مفتوحة المصدر، ساخرًا من محامي الشركات والمتشددين في التدقيق. من جهة أخرى، أدى هذا البند إلى مشاكل في توافق رخصة JSON مع رخص البرامج مفتوحة المصدر الأخرى، إذ لا تفرض البرامج مفتوحة المصدر والبرامج الحرة عادةً أي قيود على غرض الاستخدام. [ 13 ]
بناء الجملة
يوضح المثال التالي تمثيلاً محتملاً بصيغة JSON يصف شخصًا ما.
{ "first_name" : "John" , "last_name" : "Smith" , "is_alive" : true , "age" : 27 , "address" : { "street_address" : "21 2nd Street" , "city" : "New York" , "state" : "NY" , "postal_code" : "10021-3100" }, "phone_numbers" : [ { "type" : "home" , "number" : "212 555-1234" }, { "type" : "office" , "number" : "646 555-4567" } ], "children" : [ "Catherine" , "Thomas" , "Trevor" ], "spouse" : null }ترميز الأحرف
على الرغم من أن كروكفورد أكد في البداية أن JSON هي مجموعة فرعية صارمة من JavaScript و ECMAScript ، [ 14 ] إلا أن مواصفاتها تسمح فعليًا بمستندات JSON صالحة ليست JavaScript صالحة؛ إذ يسمح JSON بظهور مُنهيات الأسطر Unicode U+2028 (فاصل الأسطر) و U+2029 (فاصل الفقرات) دون تهريب في السلاسل النصية المُقتبسة، بينما لا يسمح بذلك ECMAScript 2018 والإصدارات الأقدم. [ 15 ] [ 16 ] وهذا نتيجة لعدم سماح JSON إلا بـ"أحرف التحكم". ولتحقيق أقصى قدر من قابلية النقل ، يتم تهريب هذه الأحرف باستخدام الشرطة المائلة العكسية.
يجب ترميز تبادل بيانات JSON في بيئة مفتوحة باستخدام ترميز UTF-8 . [ 7 ] يدعم هذا الترميز مجموعة أحرف Unicode الكاملة ، بما في ذلك الأحرف خارج المستوى متعدد اللغات الأساسي (من U+0000 إلى U+FFFF). مع ذلك، إذا تم استخدام رموز الهروب، فيجب كتابة هذه الأحرف باستخدام أزواج UTF-16 البديلة . على سبيل المثال، لإدراج رمز الإيموجي U+1F610 😐 (الوجه المحايد) في JSON:
{ "face" : "😐" }أو:
{ "face" : "\uD83D\uDE10" }أصبح JSON مجموعة فرعية صارمة من ECMAScript اعتبارًا من مراجعة اللغة لعام 2019. [ 16 ] [ 17 ]
أنواع البيانات
أنواع البيانات الأساسية في JSON هي:
- العدد: عدد عشري مُوَقَّع قد يحتوي على جزء كسري، ويمكن استخدام الترميز الأسي E، لكن لا يمكن أن يتضمن قيمًا غير عددية مثل NaN . لا يُميِّز هذا التنسيق بين الأعداد الصحيحة والأعداد العشرية. يستخدم جافا سكريبت تنسيق IEEE-754 للأعداد العشرية ذات الدقة المزدوجة لجميع قيمه العددية (ودعم لاحقًا BigInt أيضًا [ 18 ] )، لكن اللغات الأخرى التي تُطبِّق JSON قد تُشفِّر الأرقام بشكل مختلف.
- السلسلة النصية : عبارة عن تسلسل من صفر أو أكثر من أحرف يونيكود . تُفصل السلاسل النصية بعلامات اقتباس مزدوجة وتدعم صيغة الهروب باستخدام الشرطة المائلة العكسية .
- منطقي : إحدى القيمتين
trueأوfalse - المصفوفة : قائمة مرتبة تحتوي على صفر أو أكثر من العناصر، ويمكن أن يكون كل عنصر منها من أي نوع. تستخدم المصفوفات صيغة الأقواس المربعة مع فصل العناصر بفواصل.
- الكائن : مجموعة من أزواج الاسم والقيمة، حيث تكون الأسماء (وتُسمى أيضًا المفاتيح) سلاسل نصية. ينص معيار ECMA الحالي على أن "صيغة JSON لا تفرض أي قيود على السلاسل النصية المستخدمة كأسماء، ولا تشترط أن تكون سلاسل الأسماء فريدة، ولا تُعطي أي أهمية لترتيب أزواج الاسم/القيمة." [ 19 ] تُفصل الكائنات بأقواس معقوفة ، وتُستخدم الفواصل لفصل كل زوج، بينما يفصل رمز النقطتين الرأسيتين ":" داخل كل زوج المفتاح أو الاسم عن قيمته.
nullقيمة فارغة، باستخدام الكلمةnull
يُسمح بوجود مسافات بيضاء ويتم تجاهلها حول أو بين العناصر النحوية (القيم وعلامات الترقيم، ولكن ليس داخل قيمة نصية). تُعتبر أربعة أحرف محددة مسافات بيضاء لهذا الغرض: المسافة ، وعلامة الجدولة الأفقية ، وعلامة تغذية السطر ، وعلامة إرجاع المؤشر . على وجه الخصوص، يجب ألا يتم إنشاء علامة ترتيب البايت بواسطة تطبيق متوافق (مع أنها قد تُقبل عند تحليل JSON) . لا يوفر JSON صيغة للتعليقات . [ 20 ]
كانت الإصدارات الأولى من JSON (كما هو محدد في RFC 4627 ) تشترط أن يتكون نص JSON الصحيح من كائن أو مصفوفة فقط، والتي يمكن أن تحتوي على أنواع أخرى. وقد أُلغي هذا القيد في RFC 7158 ، حيث أُعيد تعريف نص JSON ليشمل أي قيمة مُسلسلة.
لا تتأثر الأرقام في JSON بطريقة تمثيلها داخل لغات البرمجة. ورغم أن هذا يسمح بتسلسل أرقام ذات دقة عشوائية ، إلا أنه قد يؤدي إلى مشاكل في قابلية النقل. على سبيل المثال، نظرًا لعدم وجود تمييز بين قيم الأعداد الصحيحة والأعداد العشرية، فقد تتعامل بعض التطبيقات 42مع 42.00 و1 و 4.2E+12 كرقم واحد، بينما قد لا تتعامل معها تطبيقات أخرى. لا يفرض معيار JSON أي متطلبات بشأن تفاصيل التنفيذ مثل تجاوز السعة ، أو نقص السعة ، أو فقدان الدقة، أو التقريب، أو الأصفار الموقعة ، ولكنه يوصي بعدم تجاوز دقة IEEE 754 binary64 لتحقيق "قابلية تشغيل جيدة". لا يوجد فقدان جوهري للدقة عند تسلسل تمثيل ثنائي على مستوى الآلة لعدد عشري (مثل binary64) إلى تمثيل عشري قابل للقراءة البشرية (مثل الأرقام في JSON) والعكس؛ توجد خوارزميات منشورة لإجراء هذا التحويل بدقة وكفاءة. [ 21 ]
تم استبعاد التعليقات من JSON عمداً. في عام 2012، وصف دوغلاس كروكفورد قرار التصميم على النحو التالي: "لقد أزلت التعليقات من JSON لأنني رأيت أن الناس كانوا يستخدمونها لحفظ توجيهات التحليل، وهي ممارسة كانت ستؤدي إلى تدمير قابلية التشغيل البيني." [ 20 ]
لا يسمح JSON بـ"الفواصل اللاحقة"، أي الفاصلة التي تلي القيمة الأخيرة داخل بنية البيانات. [ 22 ] تُعد الفواصل اللاحقة سمة شائعة في مشتقات JSON لتحسين سهولة الاستخدام. [ 23 ]
قابلية التشغيل البيني
يصف RFC 8259 جوانب معينة من بنية JSON التي، على الرغم من كونها قانونية وفقًا للمواصفات، يمكن أن تسبب مشاكل في قابلية التشغيل البيني.
- تقبل بعض تطبيقات JSON نصوص JSON التي تمثل كائنًا أو مصفوفة فقط. ولضمان التوافق، يجب على التطبيقات التي تتبادل JSON إرسال رسائل تمثل كائنات أو مصفوفات.
- تسمح المواصفات بوجود كائنات JSON تحتوي على عدة عناصر بنفس الاسم. ويكون سلوك التطبيقات التي تعالج الكائنات ذات الأسماء المكررة غير متوقع. ولضمان التوافق، ينبغي على التطبيقات تجنب الأسماء المكررة عند نقل كائنات JSON.
- تنص المواصفات تحديدًا على أن ترتيب العناصر في كائنات JSON ليس مهمًا. ولضمان التوافق، ينبغي للتطبيقات تجنب إعطاء أي دلالة لترتيب العناصر حتى لو كان برنامج التحليل يُظهر هذا الترتيب.
- على الرغم من أن المواصفات لا تفرض قيودًا على حجم أو دقة القيم العددية في JSON، فإن تطبيق JavaScript الشائع الاستخدام يخزنها كقيم ثنائية 64 بت وفقًا لمعيار IEEE754. ولضمان التوافق، ينبغي على التطبيقات تجنب إرسال الأرقام التي لا يمكن تمثيلها بهذه الطريقة، مثل 1E400 أو 3.141592653589793238462643383279.
- على الرغم من أن المواصفات لا تقيد ترميز الأحرف Unicode في نص JSON، إلا أن الغالبية العظمى من التطبيقات تفترض ترميز UTF-8 ؛ من أجل قابلية التشغيل البيني، يجب على التطبيقات دائمًا وترميز رسائل JSON باستخدام UTF-8 فقط.
- لا تمنع المواصفات إرسال تسلسلات بايتات تمثل أحرف يونيكود بشكل غير صحيح. ولضمان التوافق، ينبغي للتطبيقات إرسال رسائل لا تحتوي على مثل هذه التسلسلات.
- لا تحدد المواصفات كيفية قيام التطبيقات بمقارنة سلاسل يونيكود. ولضمان التوافق، ينبغي على التطبيقات دائمًا إجراء هذه المقارنات وحدةً تلو الأخرى.
في عام 2015، نشرت IETF RFC 7493 ، التي تصف "تنسيق رسالة I-JSON"، وهو ملف تعريف مقيد لـ JSON يقيد بناء الجملة ومعالجة JSON لتجنب مشاكل قابلية التشغيل البيني هذه قدر الإمكان.
علم الدلالة
بينما يوفر JSON إطارًا نحويًا لتبادل البيانات، فإن تبادل البيانات غير المبهم يتطلب أيضًا اتفاقًا بين المنتج والمستهلك على دلالات الاستخدام المحدد لبنية JSON. [ 24 ] ومن الأمثلة على الحالات التي يكون فيها هذا الاتفاق ضروريًا هو تسلسل أنواع البيانات التي لا تُعد جزءًا من معيار JSON، مثل التواريخ والتعبيرات النمطية .
البيانات الوصفية والمخطط
نوع MIME الرسمي لنصوص JSON هو .json application/json، [ 25 ] وقد اعتمدته معظم التطبيقات الحديثة. تشمل أنواع MIME القديمة .json text/jsonو text/x-json.json و .json text/javascript. [ 26 ] امتداد اسم الملف القياسي هو .json. [ 27 ]
يُحدد مخطط JSON تنسيقًا قائمًا على JSON لتعريف بنية بيانات JSON لأغراض التحقق والتوثيق والتحكم في التفاعل. وهو يوفر عقدًا لبيانات JSON المطلوبة لتطبيق معين وكيفية تعديل هذه البيانات. [ 28 ] يستند مخطط JSON إلى مفاهيم مخطط XML (XSD) ولكنه قائم على JSON. وكما هو الحال في XSD، يمكن استخدام أدوات التسلسل/فك التسلسل نفسها لكل من المخطط والبيانات، وهو يصف نفسه بنفسه. وقد تم تحديده في مسودة إنترنت لدى IETF، وكان أحدث إصدار له في عام 2024 هو "مسودة 2020-12". [ 29 ] تتوفر العديد من أدوات التحقق للغات برمجة مختلفة، [ 30 ] ولكل منها مستويات متفاوتة من المطابقة.
لا يدعم معيار JSON مراجع الكائنات ، ولكن يوجد معيار مسودة من IETF لمراجع الكائنات المستندة إلى JSON. [ 31 ]
الاستخدامات
JSON-RPC هو بروتوكول استدعاء إجراءات عن بُعد (RPC) مبني على JSON، كبديل لبروتوكولي XML-RPC و SOAP . وهو بروتوكول بسيط يُعرّف عددًا محدودًا من أنواع البيانات والأوامر. يُمكّن JSON-RPC النظام من إرسال إشعارات (معلومات إلى الخادم لا تتطلب ردًا) وإجراء عدة استدعاءات إلى الخادم يمكن الرد عليها بترتيب غير متسلسل.
يشير مصطلح AJAJ (جافا سكريبت غير المتزامنة وJSON ) إلى نفس منهجية صفحات الويب الديناميكية المستخدمة في Ajax ، ولكن بدلاً من XML ، يُستخدم JSON كصيغة للبيانات. تُعدّ AJAJ تقنية لتطوير الويب تُمكّن صفحة الويب من طلب بيانات جديدة بعد تحميلها في متصفح الويب . عادةً، تُعرض البيانات الجديدة من الخادم استجابةً لتفاعلات المستخدم على تلك الصفحة. على سبيل المثال، ما يكتبه المستخدم في مربع البحث ، يُرسله كود من جانب العميل إلى الخادم، الذي يستجيب فورًا بقائمة منسدلة تحتوي على عناصر قاعدة البيانات المطابقة .
شهدت لغة JSON استخدامًا محدودًا كلغة تهيئة . مع ذلك، فهي لا تدعم التعليقات . في عام ٢٠١٢، قال دوغلاس كروكفورد، مبتكر JSON، عن التعليقات في JSON عند استخدامها كلغة تهيئة: "أعلم أن غياب التعليقات يُحزن البعض، ولكن لا ينبغي أن يكون كذلك. لنفترض أنك تستخدم JSON لحفظ ملفات التهيئة، والتي ترغب في إضافة تعليقات توضيحية إليها. يمكنك إضافة جميع التعليقات التي تريدها. ثم مررها عبر JSMin [ ٣٢ ] قبل إرسالها إلى محلل JSON الخاص بك." [ ٢٠ ]
يستخدم MongoDB بيانات تشبه JSON لقاعدة بياناته الموجهة نحو المستندات .
أضافت بعض قواعد البيانات العلائقية دعمًا لأنواع بيانات JSON الأصلية، مثل JSONB في PostgreSQL [ 33 ] وJSON في MySQL. [ 34 ] وهذا يسمح للمطورين بإدراج بيانات JSON مباشرةً دون الحاجة إلى تحويلها إلى تنسيق آخر.
أمان
قد يؤدي كون JSON جزءًا من JavaScript إلى الاعتقاد الخاطئ بأنه من الآمن تمرير نصوص JSON إلى eval()دالة JavaScript. هذا غير آمن، لأن بعض نصوص JSON الصحيحة، وتحديدًا تلك التي تحتوي على فاصل الأسطر U+2028 أو فاصل الفقرات U+2029 ، لم تكن تُعتبر شيفرة JavaScript صالحة حتى تحديث مواصفات JavaScript في عام 2019، وبالتالي قد لا تدعمها المحركات القديمة. [ 35 ] لتجنب المخاطر العديدة الناجمة عن تنفيذ شيفرة عشوائية من الإنترنت، أُضيفت دالة جديدة، ، لأول مرة إلى الإصدار الخامس من ECMAScript، [ 36 ] والذي تدعمه جميع المتصفحات الرئيسية اعتبارًا من عام 2017. بالنسبة للمتصفحات غير المدعومة، يوفر دوغلاس كروكفورد مكتبة JavaScript متوافقة مع واجهة برمجة التطبيقات (API) . [ 37 ] بالإضافة إلى ذلك، جعل اقتراح اللجنة الفنية TC39 "دمج JSON" لغة ECMAScript مجموعةً شاملةً صارمةً للغة JSON اعتبارًا من مراجعة عام 2019. [ 16 ] [ 17 ] وقد عانت العديد من تطبيقات محلل JSON من هجمات حجب الخدمة وثغرات التخصيص الجماعي . [ 38 ] [ 39 ]JSON.parse()
البدائل
يُروج لـ JSON كبديل منخفض التكلفة لـ XML، حيث يتمتع كلا التنسيقين بدعم واسع النطاق في إنشاء وقراءة وفك تشفير البيانات في التطبيقات العملية الشائعة الاستخدام. [ 40 ] وتشمل بدائل JSON، بحسب حالة الاستخدام المحددة، ما يلي:
- بالنسبة للتنسيقات النصية، CSV ومجموعات فرعية من JSON (انظر أدناه). يوفر Ion أيضًا تنسيقًا نصيًا يُعد مجموعة فرعية من JSON (نطاق أوسع من الأنواع الأساسية، والتعليقات التوضيحية، والتعليقات، والسماح بالفواصل اللاحقة). [ 41 ]
- لتحقيق معالجة أسرع على حساب سهولة القراءة البشرية، تتضمن تنسيقات تبادل البيانات التي يمكنها التعبير عن جميع كائنات JSON (أي التي لها نموذج بيانات يشمل مجموعة فرعية من JSON) تنسيق CBOR (معيار IETF RFC) و Ion الثنائي. [ 41 ] يمكن لبروتوكول Google Protocol Buffers أيضًا أن يملأ هذا الفراغ نظرًا لإمكانية تحليله دون مخطط، ولكنه ليس مصممًا كلغة تبادل. بالإضافة إلى ذلك، تمتلك قواعد البيانات مثل SQLite و PostgreSQL تمثيلات ثنائية داخلية خاصة بها تُسمى "JSONB"، وهي غير مخصصة للاستخدام الخارجي. [ 42 ]
XML
استُخدمت لغة XML لوصف البيانات المهيكلة وتسلسل الكائنات. توجد بروتوكولات متنوعة قائمة على XML لتمثيل نفس أنواع هياكل البيانات التي تُستخدم في JSON، وذلك لأغراض تبادل البيانات نفسها. يمكن ترميز البيانات في XML بعدة طرق. ينتج عن الشكل الأكثر شمولاً، باستخدام أزواج الوسوم، تمثيل أكبر بكثير (من حيث عدد الأحرف) من JSON، ولكن إذا تم تخزين البيانات في سمات وشكل وسم مختصر حيث يتم استبدال وسم الإغلاق بـ `<a>` />، فإن التمثيل غالبًا ما يكون بنفس حجم JSON أو أكبر قليلاً. [ 43 ] مع ذلك، لا يمكن أن تحتوي سمة XML إلا على قيمة واحدة، ويمكن أن تظهر كل سمة مرة واحدة على الأكثر في كل عنصر.
يفصل XML البيانات عن البيانات الوصفية (عن طريق استخدام العناصر والسمات)، بينما لا يحتوي JSON على مثل هذا المفهوم.
يتمثل أحد الاختلافات الرئيسية الأخرى في طريقة معالجة القيم. ففي JSON، توجد كائنات ذات ربط بسيط بين المفتاح والقيمة، بينما في XML، تتم المعالجة على مستوى العقد ، حيث تحصل كل عقدة على مُعرّف فريد عبر معالج XML. بالإضافة إلى ذلك، يُحدد معيار XML سمة مشتركة xml:id، يمكن للمستخدم استخدامها لتعيين مُعرّف بشكل صريح.
لا يمكن أن تحتوي أسماء علامات XML على أي من الأحرف ، ولا مسافة، ولا يمكن أن تبدأ بـ ، أو رقم، بينما يمكن أن تحتوي مفاتيح JSON على ذلك (حتى لو كان يجب وضع علامة اقتباس وشرطة مائلة عكسية قبلها). [ 44 ]!"#$%&'()*+,/;<=>?@[\]^`{|}~-.
قيم XML عبارة عن سلاسل نصية ، تفتقر إلى آلية أمان مدمجة للتحقق من أنواع البيانات . يحتوي XML على مفهوم المخطط ، الذي يسمح بتحديد أنواع البيانات بدقة، وأنواع البيانات المُعرَّفة من قِبل المستخدم، والوسوم المُعرَّفة مسبقًا، والبنية الرسمية، مما يُتيح التحقق الرسمي من صحة تدفق XML. يحتوي JSON على عدة أنواع بيانات مدمجة، ويحتوي على مفهوم مخطط مشابه في JSON Schema .
المجموعات المتتالية
اعتُبر دعم التعليقات والميزات الأخرى مفيدًا، مما أدى إلى إنشاء العديد من مجموعات JSON الفرعية غير القياسية . من بينها HJSON، [ 46 ] وHOCON، وJSON5 (الذي على الرغم من اسمه، ليس الإصدار الخامس من JSON). [ 47 ] [ 48 ]
YAML
يُعدّ YAML الإصدار 1.2 مجموعةً فرعيةً من JSON؛ إذ لم تكن الإصدارات السابقة متوافقةً معه تمامًا. على سبيل المثال، يُعدّ استخدام الشرطة المائلة /العكسية (\) قبل الشرطة المائلة \صحيحًا في JSON، ولكنه غير صحيح في YAML. [ 49 ] يدعم YAML التعليقات، بينما لا يدعمها JSON. [ 49 ] [ 47 ] [ 20 ]
CSON
يستخدم CSON (" تدوين كائنات CoffeeScript ") مسافات بادئة كبيرة ومفاتيح غير مُقتبسة، ويفترض وجود تعريف كائن خارجي. وقد استُخدم لتكوين محرر النصوص Atom الخاص بـ GitHub . [ 50 ] [ 51 ] [ 52 ]
يوجد أيضًا مشروع غير ذي صلة يسمى CSON ("تدوين كائنات الكتابة اليدوية") وهو أكثر تشابهًا من الناحية التركيبية مع JSON. [ 53 ]
هوكون
HOCON ("تدوين كائنات التكوين المُحسَّن للبشر") هو تنسيق للبيانات سهلة القراءة ، وهو مجموعة فرعية من JSON. [ 54 ] استخدامات HOCON هي:
- يتم استخدامه في الغالب جنبًا إلى جنب مع إطار عمل Play ، [ 55 ] ويتم تطويره بواسطة Lightbend .
- كما يتم دعمه كصيغة تكوين لمشاريع .NET عبر Akka.NET [ 56 ] [ 57 ] و Puppet . [ 58 ]
- TIBCO Streaming: [ 59 ] HOCON هو تنسيق ملف التكوين الأساسي لعائلة منتجات TIBCO Streaming [ 60 ] (StreamBase وLiveView وArtifact Management Server) اعتبارًا من إصدار TIBCO Streaming 10. [ 61 ]
- كما أنه تنسيق ملف التكوين الأساسي للعديد من الأنظمة الفرعية لبرنامج Exabeam Advanced Analytics. [ 62 ]
- يستخدم Jitsi هذا كنظام تكوين "جديد" وملفات .properties كخيار احتياطي [ 63 ] [ 64 ]
JSON5
JSON5 ("تنسيق تبادل بيانات JSON5") هو امتداد لبنية JSON، وهو، مثل JSON، صيغة صالحة في جافا سكريبت. بدأ العمل على هذه المواصفات في عام 2012 واكتمل في عام 2018 مع الإصدار 1.0.0. [ 65 ] وتتمثل الاختلافات الرئيسية بينه وبين بنية JSON فيما يلي:
- الفواصل اللاحقة اختيارية
- مفاتيح الكائنات غير المقتبسة
- السلاسل النصية ذات علامات الاقتباس المفردة والمتعددة الأسطر
- تنسيقات أرقام إضافية
- تعليقات
يتم دعم صيغة JSON5 في بعض البرامج كامتداد لصيغة JSON، على سبيل المثال في SQLite . [ 66 ]
JSONC
JSONC (JSON مع التعليقات) هو مجموعة فرعية من JSON5 المستخدمة في Microsoft's Visual Studio Code : [ 67 ] [ 68 ]
- يدعم التعليقات ذات السطر الواحد (
//) والتعليقات الكتلية (/* */) [ 69 ] - يقبل البرنامج الفواصل الزائدة، لكن يُنصح بتجنبها وسيعرض المحرر تحذيرًا.
المشتقات
تم بناء العديد من تنسيقات التسلسل على مواصفات JSON أو انطلاقاً منها. ومن الأمثلة على ذلك:
- GeoJSON ، وهو تنسيق مصمم لتمثيل السمات الجغرافية البسيطة [ 70 ] [ 71 ]
- JSON-LD ، وهي طريقة لترميز البيانات المرتبطة باستخدام JSON [ 72 ] [ 73 ]
- JSON-RPC ، وهو بروتوكول استدعاء إجراء عن بعد مشفر بصيغة JSON [ 74 ]
- JsonML ، وهي لغة ترميز خفيفة الوزن تستخدم للربط بين XML و JSON [ 75 ] [ 76 ]
- Smile (تنسيق تبادل البيانات) [ 77 ] [ 78 ]
- UBJSON ، وهو تنسيق تبادل بيانات حاسوبية ثنائي يحاكي JSON، ولكنه يتطلب عددًا أقل من بايتات البيانات [ 79 ] [ 80 ]
- Jsonnet هي لغة برمجة خاصة بمجال معين، تعتمد على النماذج الأولية ، وتُنتج ملفات JSON. جميع مستندات JSON هي برامج Jsonnet صالحة، تُنفذ دون تغيير عند تشغيلها. تُوسّع Jsonnet نطاق JSON بدعمها للمتغيرات، والاستيراد، والحلقات، والتعليقات، وغيرها. [ 81 ] [ 82 ] تُستخدم Jsonnet كلغة تهيئة لهندسة البنية التحتية السحابية. [ 83 ]
انظر أيضاً
- بيسون
- مقارنة تنسيقات تسلسل البيانات
- تدوين البيانات القابل للتوسيع
- Amazon Ion – مجموعة فرعية من JSON (على الرغم من أنها تقتصر على UTF-8 ، مثل JSON للتبادل، على عكس JSON العام)
- جاكسون (API)
- jaql – لغة معالجة واستعلام وظيفية للبيانات، تُستخدم بشكل شائع لمعالجة استعلامات JSON
- jq – لغة استعلام JSON ولغة برمجة عالية المستوى
- JSONiq – لغة استعلام ومعالجة موجهة نحو JSON تعتمد على XQuery
- بث JSON
- تعبير S
ملحوظات
- ↑ يستخدم كروكفورد الضمائر الجديدة pe/per . [ 2 ] تستخدم هذه المقالة ضمائر الجمع they/them للتبسيط والفهم.
مراجع
- 1 2 3 كروكفورد، دوغلاس (28 أغسطس 2011). ملحمة JSON (فيديو) . مكتبة YUI . تم الاطلاع عليه في 21 فبراير 2022 - عبر يوتيوب .
- نص مكتوب (مؤرشف بتاريخ 30-10-2019) من فيديوهات النصوص المكتوبة
- ^ كروكفورد ، دوغلاس (8 ديسمبر 2022). "الضمائر" . تم الاسترجاع في 16 فبراير 2026 .
ضمائري هي "pe"/"per".
- 1 2 3 "ISO/IEC 21778:2017 تكنولوجيا المعلومات - صيغة تبادل بيانات JSON" . ISO . تم الاطلاع عليه في 24 يونيو 2025 .
- ↑ "ECMA-404: صيغة تبادل بيانات JSON" ( الطبعة الثانية). إيكما الدولية . ديسمبر 2017. ص. iii، حاشية. مؤرشف (PDF) من الأصل في 27 أكتوبر 2019. تم الاطلاع عليه في 29 أبريل 2024 .
- 1 2 3 "ECMA-404: تنسيق تبادل بيانات JSON" ( الطبعة الأولى ). إيكما الدولية . أكتوبر 2013. مؤرشف (PDF) من الأصل في 1 نوفمبر 2013. تم الاطلاع عليه في 20 نوفمبر 2023 .
- ↑ سويغارت، آل (2015). أتمتة المهام المملة باستخدام بايثون: برمجة عملية للمبتدئين تمامًا . دار نشر نو ستارش . ص 319. ISBN 9781593276850تم الاطلاع عليه بتاريخ ٢٩ أكتوبر ٢٠١٩.
يُنطق الاسم "جاي-سون" أو "جيسون" - لا يهم كيف يُنطق، لأن الناس سيقولون في كلتا الحالتين أنك تنطقه بشكل خاطئ
.(بافتراض دمج cot-caught : "sawn" / s ɔː n / → [sɒn] ). - 1 2 3 تي. براي (ديسمبر 2017). تنسيق تبادل البيانات JSON (تدوين كائنات جافا سكريبت) . فريق عمل هندسة الإنترنت . doi : 10.17487/RFC8259 . ISSN 2070-1721 . STD 90. RFC 8259 . معيار الإنترنت 90. عفا عليه الزمن RFC 7159 .
- ↑ براي، تيم. "JSON Redux المعروف أيضًا باسم RFC7159" . مستمر . تم الاطلاع عليه في 16 مارس 2014 .
- ↑ "تاريخ جافا غير الرسمي" . Edu4Java . 26 مايو 2014. مؤرشف من الأصل في 26 مايو 2014. تم الاطلاع عليه في 30 أغسطس 2019. في عام 1996 ،
أطلقت ماكروميديا تقنية فلاش التي شغلت المساحة التي تركتها جافا وActiveX، لتصبح المعيار الفعلي للرسوم المتحركة على جانب العميل.
- ↑ "JSON" . json.org .
- ↑ ياهو!. "استخدام JSON مع خدمات الويب من ياهو!" . مؤرشف من الأصل في 11 أكتوبر 2007. تم الاطلاع عليه في 3 يوليو 2009 .
- ↑ كروكفورد، دوغلاس (28 مايو 2009). "مقدمة إلى JSON" . json.org . تم الاطلاع عليه في 3 يوليو 2009.
وهو مبني على مجموعة فرعية من لغة برمجة جافا سكريبت، المعيار ECMA-262، الإصدار الثالث - ديسمبر 1999.
- ↑ " أباتشي ورخصة JSON " على LWN.net بقلم جيك إيدج (30 نوفمبر 2016).
- ↑ دوغلاس كروكفورد (10 يوليو 2016). "JSON في جافا سكريبت" . مؤرشف من الأصل في 10 يوليو 2016. تم الاطلاع عليه في 13 أغسطس 2016.
JSON هو مجموعة فرعية من صيغة الكائن الحرفي في جافا سكريبت
. - ↑ هولم، ماغنوس (15 مايو 2011). "JSON: مجموعة فرعية من جافا سكريبت ليست كذلك" . المستودع الخالد. مؤرشف من الأصل في 13 مايو 2012. تم الاسترجاع في 23 سبتمبر 2016 .
- 1 2 3 "دمج JSON: اقتراح لجعل جميع نصوص JSON صالحة ECMA-262" . ECMA TC39. 23 أغسطس 2019. تم الاطلاع عليه في 27 أغسطس 2019 .
- 1 2 "التقدم إلى المرحلة 4 - tc39/proposal-json-superset" . GitHub . 22 مايو 2018.
- ↑ "BigInt - قاموس MDN Web doc" . موزيلا . تم الاطلاع عليه في 18 أكتوبر 2020 .
- ↑ ECMA-404، الطبعة الثانية ، ص 3 : "لا يفرض بناء جملة JSON أي قيود على السلاسل المستخدمة كأسماء، ولا يشترط أن تكون سلاسل الأسماء فريدة، ولا يعطي أي أهمية لترتيب أزواج الاسم/القيمة."
- 1 2 3 4 5 كروكفورد، دوغلاس (30 أبريل 2012). "التعليقات في JSON" . مؤرشف من الأصل في 30 يوليو 2016. تم الاطلاع عليه في 30 أغسطس 2019.
لقد حذفت التعليقات من JSON لأنني لاحظت أن البعض يستخدمها لحفظ توجيهات التحليل، وهي ممارسة كانت ستؤدي إلى انهيار التوافق. أعلم أن غياب التعليقات قد يزعج البعض، ولكن لا ينبغي أن يكون كذلك. لنفترض أنك تستخدم JSON لحفظ ملفات التكوين، والتي ترغب في إضافة تعليقات توضيحية إليها. يمكنك إضافة جميع التعليقات التي تريدها. ثم مررها عبر
JSMin
قبل إرسالها إلى محلل JSON الخاص بك.
- ↑ أندريسكو، مارك؛ جالا، رانجيت؛ ليرنر، سورين (18 فبراير 2016). طباعة الأعداد العشرية: طريقة صحيحة دائمًا (ملف PDF) (تقرير) . تم الاطلاع عليه في 31 مايو 2025 .
- ↑ "الفاصلة الزائدة - جافا سكريبت | MDN" . developer.mozilla.org . ١٢ سبتمبر ٢٠٢٣. تم الاطلاع عليه في ١٦ ديسمبر ٢٠٢٣ .
- ↑ "JSON5" . json5. مؤرشف من الأصل في 29 نوفمبر 2020. تم الاسترجاع في 16 ديسمبر 2020 .
- ↑ ECMA-404، الطبعة الثانية ، ص. iii : "لا تُعدّ صيغة JSON مواصفاتٍ لتبادل بيانات كامل. يتطلب تبادل البيانات ذو المعنى اتفاقًا بين المُنتِج والمُستهلِك على الدلالات المرتبطة باستخدام مُحدد لصيغة JSON. ما تُوفّره JSON هو الإطار النحوي الذي يُمكن ربط هذه الدلالات به."
- ↑ "أنواع الوسائط" . iana.org . تم الاطلاع عليه في 13 سبتمبر 2015 .
- ↑ "العنوان الصحيح لنوع المحتوى في JSON" . ReqBin . 13 يناير 2023. تم الاطلاع عليه في 23 مارس 2024 .
- ↑ براي، تيم (ديسمبر 2017). براي، ت. (محرر). "11. اعتبارات هيئة تخصيص أرقام الإنترنت (IANA)" . RFC 8259: تنسيق تبادل بيانات تدوين كائنات جافا سكريبت (JSON) . IETF . doi : 10.17487/RFC8259 . S2CID 263868313 .
- ↑ "مخطط JSON والمخطط الفائق" . json-schema.org . تم الاطلاع عليه في 8 يونيو 2021 .
- ↑ "JSON Schema - Specification Links" . json-schema.org . تم الاطلاع عليه بتاريخ 22 مارس 2024 .
- ↑ "تطبيقات مخطط JSON" . json-schema.org . مؤرشف من الأصل في 16 يونيو 2021. تم الاطلاع عليه في 8 يونيو 2021 .
- ↑ زيب، كريس (16 سبتمبر 2012). برايان، بول سي. (محرر). "مرجع JSON: draft-pbryan-zyp-json-ref-03" . فريق عمل هندسة الإنترنت .
- ↑ كروكفورد، دوغلاس (16 مايو 2019). "JSMin" . تم الاطلاع عليه في 12 أغسطس 2020.
JSMin [2001] هي أداة تصغير تزيل التعليقات والمسافات البيضاء غير الضرورية من ملفات جافا سكريبت.
- ↑ "نوع بيانات JSONB" . www.cockroachlabs.com . تم الاطلاع عليه في 1 أبريل 2025 .
- ↑ "نوع بيانات JSON" . dev.mysql.com . تم الاطلاع عليه في 1 أبريل 2025 .
- ↑ "JSON: مجموعة فرعية من جافا سكريبت ليست كذلك" . ماغنوس هولم. مؤرشف من الأصل في 13 مايو 2012. تم الاطلاع عليه في 16 مايو 2011 .
- ↑ "ECMA-262: مواصفات لغة ECMAScript" (الطبعة الخامسة ). ديسمبر 2009. مؤرشف (PDF) من الأصل في 14 أبريل 2011. تم الاطلاع عليه في 18 مارس 2011 .
- ↑ "douglascrockford/JSON-js" . GitHub . 13 أغسطس 2019.
- ↑ "ثغرة أمنية في JSON تؤدي إلى حجب الخدمة وإنشاء كائنات غير آمنة (CVE-2013-0269)" . تم الاطلاع عليه بتاريخ 5 يناير 2016 .
- ↑ "ثغرة أمنية في معالجة محتوى JSON في إطار عمل Microsoft .NET تؤدي إلى حرمان من الخدمة" . مؤرشف من الأصل في 6 نوفمبر 2018. تم الاطلاع عليه في 5 يناير 2016 .
- ↑ "JSON: البديل الخالي من التعقيد لـ XML" . json.org . تم الاطلاع عليه بتاريخ 14 مارس 2011 .
- 1 2 "أمازون أيون" . أمازون . مؤرشف من الأصل في 12 أغسطس 2024. تم الاسترجاع في 26 أغسطس 2024 .
- ↑ "تنسيق JSONB في SQLite" . sqlite.org .
- ↑ لي، ديفيد (6 أغسطس 2013). هامش الربح على الدهون: تفنيد خرافة هامش الربح على الدهون سعرة حرارية واحدة في كل مرة . باليساج: مؤتمر هامش الربح 2013. مونتريال، كندا. doi : 10.4242/BalisageVol10.Lee01 . ISBN 978-1-935958-06-2.
- ↑ "مواصفات XML 1.1" . اتحاد شبكة الويب العالمية . تم الاطلاع عليه بتاريخ 26 أغسطس 2019 .
- ↑ ساتيرنوس، كازيمير (2014). تطبيقات الويب العميل-الخادم باستخدام جافا سكريبت وجافا . دار نشر أورايلي ميديا، ص 45. ISBN 9781449369316.
- ↑ إيدلمان، جيسون؛ لوي، سكوت؛ أوزوالت، مات. قابلية برمجة الشبكات وأتمتتها . دار نشر أورايلي ميديا .
لتمثيل البيانات، يمكنك اختيار أحد الخيارات التالية: YAML، YAMLEX، JSON، JSON5، HJSON، أو حتى بايثون خالصة.
- 1 2 ماكومبس، ثاين (16 يوليو 2018). "لماذا لا تُعدّ JSON لغة تهيئة جيدة؟" . لوسيد تشارت . تم الاسترجاع في 15 يونيو 2019 .
- ↑ " HOCON (تدوين كائنات التكوين المُحسَّن بشريًا)" . GitHub . 28 يناير 2019. تم الاطلاع عليه في 28 أغسطس 2019.
الهدف الأساسي هو: الحفاظ على دلالات JSON (بنية الشجرة؛ مجموعة الأنواع؛ التشفير/الهروب)، ولكن جعلها أكثر ملاءمة كصيغة ملف تكوين قابلة للتعديل البشري.
- 1 2 "YAML ليست لغة ترميز (YAML) الإصدار 1.2" . yaml.org . تم الاطلاع عليه في 13 سبتمبر 2015 .
- ↑ دوم، لي (2014). "تدوين كائنات كوفي سكريبت" . كتاب أتوم الكبير . مؤرشف من الأصل في 22 أبريل 2023. تم الاسترجاع في 29 أبريل 2024 .
- ↑ "التخصيص الأساسي" . دليل Atom Flight . GitHub . مؤرشف من الأصل في 29 أبريل 2024. تم الاطلاع عليه في 29 أبريل 2024 .
- ↑ "CSON" . بيفري. 20 ديسمبر 2023. مؤرشف من الأصل في 23 أبريل 2024. تم الاسترجاع في 29 أبريل 2024 – عبر GitHub .
- ↑ سيونغهون، كانغ (1 يوليو 2021). "CSON" . مؤرشف من الأصل في 16 ديسمبر 2023. تم الاسترجاع في 27 فبراير 2023 – عبر GitHub .
- ↑ "config/HOCON.md at master · lightbend/config" . GitHub . تم الاطلاع عليه في 5 أغسطس 2021 .
- ↑ "ملف الإعدادات - 2.5.x" . www.playframework.com . تم الاطلاع عليه بتاريخ 5 أغسطس 2021 .
- ↑ وثائق Akka.NET HOCON
- ↑ "وثائق Akka.NET" . getakka.net . تم الاطلاع عليه بتاريخ 5 أغسطس 2021 .
- ↑ "إدارة ملفات تكوين HOCON باستخدام Puppet" . مؤرشف من الأصل في 11 فبراير 2017. تم الاطلاع عليه في 4 مارس 2023 .
- ↑ "وثائق StreamBase" . docs.streambase.com . تم الاطلاع عليه بتاريخ 5 أغسطس 2021 .
- ↑ "دليل التكوين" . docs.streambase.com . تم الاطلاع عليه في 5 أغسطس 2021 .
- ↑ "أرشيف ستريم بيس الجديد والمميز" . docs.streambase.com . تم الاطلاع عليه بتاريخ 5 أغسطس 2021 .
- ↑ "ملاحظات إصدار Exabeam Advanced Analytics" . مؤرشف من الأصل في 20 أكتوبر 2020. تم الاطلاع عليه في 4 مارس 2023 .
- ↑ مشروع JITSI. "مرحلة التكوين 1" . GitHub . تم الاسترجاع في 16 فبراير 2021 .
- ↑ مشروع JITSI. "reference.conf" . GitHub . تم الاطلاع عليه في 16 فبراير 2021 .
- ↑ "تنسيق تبادل البيانات JSON5" . تم الاطلاع عليه بتاريخ 25 يونيو 2022 .
- ↑ SQLite. "وظائف ومعاملات JSON" . تم الاطلاع عليه بتاريخ 25 يونيو 2023 .
- ↑ "JSON مع التعليقات - تحرير JSON في Visual Studio Code" . Visual Studio Code . Microsoft . تم الاطلاع عليه بتاريخ 29 أبريل 2024 .
- ↑ ديل سول، أليساندرو (2023). "دعم اللغة وميزات تحرير التعليمات البرمجية". Visual Studio Code Distilled ( الطبعة الثالثة). Apress. ص 46. doi : 10.1007/978-1-4842-9484-0_3 . ISBN 978-1-4842-9484-0.
- ↑ فريسبي، مات (2025). "بيان الإضافات". بناء إضافات المتصفح . بيركلي، كاليفورنيا: أبريس. doi : 10.1007/979-8-8688-1594-2_5 . ISBN 979-8-8688-1594-2.
- ↑ بتلر، هـ.؛ دالي، م.؛ دويل، أ.؛ جيليس، شون؛ شوب، ت.؛ هاجن، ستيفان (أغسطس 2016). "RFC 7946 - تنسيق GeoJSON" . متتبع بيانات IETF . تم الاسترجاع في 17 يونيو 2022 .
- ↑ "GeoJSON" . geojson.org . تم الاطلاع عليه في 7 أغسطس 2022 .
- ↑ "JSON-LD 1.1" . اتحاد شبكة الويب العالمية . 16 يوليو 2020. تم الاطلاع عليه في 17 يونيو 2022 .
- ↑ "JSON-LD - JSON لربط البيانات" . json-ld.org . تم الاطلاع عليه في 7 أغسطس 2022 .
- ↑ "JSON-RPC" . jsonrpc.org . تم الاطلاع عليه في 17 يونيو 2022 .
- ↑ "JsonML (لغة ترميز JSON)" . JsonML.org . تم الاطلاع عليه بتاريخ 17 يونيو 2022 .
- ↑ ماكامي، ستيفن (14 يونيو 2022)، JsonML ، تم الاطلاع عليه في 7 أغسطس 2022
- ↑ "FasterXML/smile-format-specification: New home for Smile format" . GitHub . تم الاطلاع عليه في 17 يونيو 2022 .
- ↑ غوبتا، أيوش (10 فبراير 2019). "فهم سمايل - تنسيق بيانات قائم على JSON" . كود مع أيوش . تم الاسترجاع في 7 أغسطس 2022 .
- ↑ "مواصفات JSON الثنائية العالمية - مواصفات التنسيق المتوافقة عالميًا لـ JSON الثنائي" . ubjson.org . تم الاطلاع عليه في 17 يونيو 2022 .
- ↑ "UBJSON - JSON للغة C++ الحديثة" . json.nlohmann.me . تم الاطلاع عليه في 7 أغسطس 2022 .
- ↑ برايان فيولينغ "التكرارية والموثوقية وقابلية التوسع من خلال GitOps" . 2021. ص 129.
- ↑ ويليام هيغيدوس. "إتقان بروميثيوس" . 2024. ص 194 - 198.
- ↑ إريك ليانغ وآرون ديفيدسون "البنية التحتية التصريحية باستخدام لغة القوالب Jsonnet" . 2017.
روابط خارجية
- JSON
- أجاكس (برمجة)
- مقدمات متعلقة بالحاسوب في عام 2001
- معايير إيكما
- معايير ISO
- لغات الترميز
- التنسيقات المفتوحة
