ما الفرق بين ترميز JSON ولغة XML؟

ترميز JSON ولغة XML عبارة عن تمثيلَي بيانات يُستخدمان في تبادل البيانات بين التطبيقات. ترميز JSON عبارة عن تنسيق مفتوح لتبادل البيانات يمكن قراءته من قِبل الأشخاص والآلات. يُعد ترميز JSON مستقلاً عن أي لغة برمجة وهو أحد مخرجات واجهة برمجة التطبيقات (API) الشائعة في مجموعة متنوعة من التطبيقات. لغة XML هي لغة توصيف توفر قواعد لتعريف أي بيانات. وتستخدم العلامات للتمييز بين سمات البيانات والبيانات الفعلية. وعلى الرغم من استخدام كلا التنسيقين في تبادل البيانات، فإن ترميز JSON هو الخيار الأحدث والأكثر مرونة وشيوعًا.

اقرأ حول JSON »

اقرأ حول XML »

ما أوجه التشابه بين ترميز JSON ولغة XML؟

ترميز JSON ولغة XML كلاهما تنسيق لتسلسل البيانات. إنهما يسمحان لك بتبادل البيانات عبر تطبيقات أو منصات أو أنظمة مختلفة بطريقة موحدة.

تمثل لغات البرمجة المختلفة ومنصاتها البيانات نفسها بشكل مختلف. على سبيل المثال، يستخدم تطبيق Java كائن بيانات، ويستخدم تطبيق Python قاموسًا لتخزين معلومات حول الكيان نفسه في العالم الحقيقي. لتبادل البيانات بينهما، يمكنك تنفيذ الخطوات الآتية:

  1. حوِّل كائن Java إلى لغة XML أو ترميز JSON
  2. أرسِل ملف بلغة XML أو بترميز JSON عبر إحدى الشبكات
  3. أعِد تحويل لغة XML أو ترميز JSON إلى قاموس Python

 

تكون التحويلات مدمجة في مكتبات اللغة، وهذا يتيح للمبرمجين كتابة التطبيقات التي تتواصل مع بعضها باستخدام واجهات برمجة التطبيقات (API). بالإضافة إلى ذلك، فإن كلا التنسيقين يتسم بالوصف الذاتي، لذا يمكنك قراءة ملفات ترميز JSON ولغة XML وتحريرهما في أي محرر نصوص.

على الرغم من أن لغة XML تقنية قديمة، فإن كلاً من ترميز JSON ولغة XML لا يزالان يُستخدمان بشكل شائع.

تمثيل البيانات: ترميز JSON مقابل XML

تمثِّل لغة XML البيانات في نمط شجرة، بينما يستخدم ترميز JSON أزواج القيم والمفاتيح. تعرض الأمثلة الآتية المعلومات نفسها بكلا تمثيلَي البيانات. 

مثال: مستند ترميز JSON

يعرض المثال الآتي أسماء ثلاثة ضيوف بترميز JSON.

{"guests":[

  { "firstName":"John", "lastName":"Doe" },

  { "firstName":"María", "lastName":"García" },

  { "firstName":"Nikki", "lastName":"Wolf" }

]}

مثال: مستند لغة XML

يعرض المثال الآتي أسماء ثلاثة ضيوف بلغة XML.

<guests>

  <guest>

    <firstName>John</firstName> <lastName>Doe</lastName>

  </guest>

  <guest>

    <firstName>María</firstName> <lastName>García</lastName>

  </guest>

  <guest>

    <firstName>Nikki</firstName> <lastName>Wolf</lastName>

  </guest>

</guests>

الاختلافات الرئيسة: ترميز JSON مقابل XML

على الرغم من أن ترميز JSON ولغة XML يخدمان أغراضًا متشابهة، فإن بعض الاختلافات الأساسية تميزهما عن بعضهما. سيساعدك فهم هذه الاختلافات في تحديد أيهما أكثر فائدة لحالة استخدامك.

التاريخ

صممت XML Working Group لغة XML في عام 1996، وأصدرت نسختها الأولية في عام 1998. لقد اشتقت XML Working Group هذه اللغة من لغة التوصيف القياسية المعممة (SGML). بعد تقديم لغة HTML في عام 1998، طورت لغة XML كأداة لتسلسل البيانات.

أطلق دوجلاس كروكفورد وتشيب مورنينجستار ترميز JSON في عام 2001. واشتقا ترميز JSON من لغة JavaScript.

التنسيق

يستخدم ترميز JSON أزواج القيم والمفاتيح لإنشاء بنية تشبه الخريطة. المفتاح عبارة عن سلسلة، وهي تعرِّف الزوج. والقيمة هي المعلومات التي تعطيها أنت لهذا المفتاح. على سبيل المثال، يمكن أن يكون لدينا ‎"NumberProperty": 10. في هذا المثال، "NumberProperty" هو المفتاح، و10 هي القيمة.

في المقابل، لغة XML عبارة عن لغة توصيف؛ مجموعة فرعية من لغة التوصيف القياسية المعممة (SGML) ذات البنية المشابهة للغة HTML. تخزِّن لغة XML البيانات في بنية شجرة تقدم طبقات من المعلومات يمكنك متابعتها وقراءتها. تبدأ الشجرة بعنصر الجذر (الأصل) قبل إعطاء معلومات حول العناصر الفرعية. هذه البنية الموسعة مفيدة لتحميل الكثير من المتغيرات والتكوينات الديناميكية. 

الصياغة

الصياغة المستخدمة في ترميز JSON أكثر إيجازًا وأسهل في الكتابة والقراءة. وتسمح لك بتعريف الكائنات بسهولة.

لغة XML مطولة بشكل أكبر وتستبدل حروفًا معينة بمراجع كيانات. على سبيل المثال، بدلاً من الحرف < تستخدم لغة XML مرجع الكيان &it;. تستخدم لغة XML أيضًا علامات النهاية، ما يجعلها أطول من ترميز JSON.

التحليل

يجب عليك تحليل لغة XML باستخدام محلِّل لغة XML، الذي غالبًا ما يبطئ العملية ويعقدها.

يمكنك تحليل ترميز JSON باستخدام دالة JavaScript قياسية، التي يمكن الوصول إليها بشكل أكبر. نظرًا إلى اختلافات الصياغة وحجم الملف بينهما، يمكنك أيضًا تحليل ترميز JSON بشكل أسرع من لغة XML.

وثائق المخطط

تصف وثائق المخطط الغرض من الملف، وتوضح ما يجب أن تستخدمه من أجله.

تحتوي مستندات لغة XML على رابط لمخططها في رأس الصفحة. ويوجد المخطط أيضًا في تنسيق XML، وهو ما يسمح لك بقراءة ما يجب أن تتوقع العثور عليه في الملف. يمكنك بعد ذلك التحقق من صحة المستند مقابل المخطط والتحقق من تحميل كل شيء بشكل صحيح وبدون أخطاء.

يتيح لك ترميز JSON أيضًا استخدام المخططات. ومع ذلك، فهي أبسط وتسمح بمرونة أكبر.

دعم أنواع البيانات

لا يدعم ترميز JSON إلا نطاقًا محدودًا من أنواع البيانات فحسب، مثل السلاسل والأرقام والكائنات. يمكن أن يدعم ترميز JSON أيضًا مصفوفات القيم المنطقية، التي لا يمكن أن تدعمها لغة XML بدون إضافة علامات إضافية.

ومع ذلك، تُعد لغة XML أكثر مرونة، وتدعم أنواع البيانات المعقدة مثل البيانات الثنائية والطوابع الزمنية. 

سهولة الاستخدام

كلغة توصيف، تُعد لغة XML أكثر تعقيدًا وتتطلب بنية من العلامات.

في المقابل، ترميز JSON عبارة عن تنسيق بيانات يمتد من لغة JavaScript. فهو لا يستخدم العلامات، وهو ما يجعله أكثر إيجازًا وأسهل في القراءة للبشر. يمكن لترميز JSON تمثيل البيانات نفسها بحجم ملف أصغر لنقل البيانات بشكل أسرع.

الأمان

تحليل ترميز JSON أكثر أمانًا من لغة XML.

بنية لغة XML عرضة للتعديلات غير المصرح بها، وهو ما ينشئ خطرًا أمنيًا يُعرف باسم حقن كيان XML خارجي (XXE). وهي عرضة أيضًا لإعلان نوع المستند (DTD) الخارجي غير المهيكل. يمكنك منع هاتين المشكلتين عن طريق إيقاف تشغيل ميزة إعلان نوع المستند (DTD) في الإرسال. 

متى تستخدم: ترميز JSON مقابل XML

إذا كنت ترغب في تخزين العديد من أنواع البيانات المختلفة التي تتضمن العديد من المتغيرات، فإن لغة XML هي الخيار الأفضل. تتحقق لغة XML من الأخطاء في البيانات المعقدة بكفاءة أكبر من ترميز JSON، حيث تركز الأولى على تخزين البيانات بطريقة يمكن قراءتها آليًا. وهي تنطوي أيضًا على مجموعة أكثر تطورًا من الأدوات والمكتبات، وقد تعمل بشكل أفضل مع الأنظمة القديمة.

 

على الجانب الآخر، صُمم ترميز JSON لتبادل البيانات، وهو يوفر تنسيقًا أبسط وأكثر إيجازًا. وهو يحسن الأداء وسرعة الاتصال كذلك.

يُعد ترميز JSON خيارًا أفضل بوجه عام لواجهات برمجة التطبيقات (API) وتطبيقات الهاتف الجوال ومخزن البيانات، بينما تُعد لغة XML مناسبة بشكل أفضل لهياكل المستندات المعقدة التي تتطلب تبادل البيانات.

ملخص الاختلافات: ترميز JSON مقابل XML

 

JSON

XML

ما يشير إليه الاختصار

JSON يشير إلى ترميز الكائنات باستخدام لغة JavaScript.

XML تشير إلى لغة التوصيف القابلة للتوسعة. 

التاريخ

أطلق دوجلاس كروكفورد وتشيب مورنينجستار ترميز JSON في عام 2001.

أصدرت XML Working Group لغة XML في عام 1998.

شكل الاختبار

يستخدم ترميز JSON بنية تشبه الخريطة مع أزواج تتكون من قيم ومفاتيح.

تخزِّن لغة XML البيانات في بنية شجرة ذات مساحات أسماء لفئات مختلفة من البيانات.

الصياغة

تتصف صياغة ترميز JSON بأنه أكثر إيجازًا وأسهل في القراءة والكتابة.

تستبدل صياغة لغة XML بعض الحروف بمراجع كيانات، ما يجعلها مطولة بشكل أكبر.

التحليل

يمكنك تحليل ترميز JSON باستخدام دالة JavaScript قياسية.

تحتاج إلى تحليل لغة XML باستخدام محلِّل لغة XML.

وثائق المخطط

ترميز JSON بسيط وأكثر مرونة.

لغة XML معقدة وأقل مرونة.

أنواع البيانات

يدعم ترميز JSON الأرقام والكائنات والسلاسل ومصفوفات القيم المنطقية (Boolean).

تدعم لغة XML جميع أنواع بيانات ترميز JSON والأنواع الإضافية مثل القيم المنطقية والتواريخ والصور ومساحات الأسماء.

سهولة الاستخدام

أحجام ملفات ترميز JSON أصغر ونقل البيانات أسرع.

بنية علامات لغة XML أكثر تعقيدًا في الكتابة والقراءة، وتنتج عنها ملفات ضخمة.

الأمان

ترميز JSON أكثر أمانًا من لغة XML.

يجب عليك إيقاف تشغيل إعلان نوع المستند (DTD) عند العمل باستخدام لغة XML لتقليل المخاطر الأمنية المحتملة.

كيف يمكن أن تدعم AWS متطلبات ترميز JSON ولغة XML الخاصة بك؟

تستطيع جميع خدمات تكامل البيانات من Amazon Web Services ‏(AWS) معالجة الملفات بتنسيقي JSON (ترميز الكائنات باستخدام لغة JavaScript) وXML (لغة التوصيف القابلة للتوسعة). وفيما يلي ثلاث خدمات من AWS ذات صلة:

  • AWS Glue عبارة عن خدمة تكامل بيانات بلا خادم يُمكنك استخدامها في اكتشاف البيانات وإعدادها ودمجها لأغراض التحليلات وتعلم الآلة وتطوير التطبيقات.
  • خدمة قوائم الانتظار البسيطة في Amazon ‏(Amazon SQS) هي خدمة قائمة انتظار رسائل مُدارة بالكامل يمكنك استخدامها لإرسال أي عدد من الرسائل وتخزينها واستلامها بين مكونات البرامج. يمكن أن تحتوي رسائل Amazon SQS على ما يصل إلى 256 كيلوبايت من البيانات النصية، بما في ذلك لغة التوصيف القابلة للتوسعة (XML) وJSON والنص غير المنسق.
  • تسهّل Amazon Kinesis جمع البيانات المتدفقة ومعالجتها وتحليلها في الوقت الفعلي. يمكنك الحصول على رؤى في الوقت المناسب والتفاعل بسرعة مع المعلومات الجديدة. يمكنك دفق بيانات XML وتحويلها وتحليلها في الوقت الفعلي باستخدام Kinesis.

بالإضافة إلى ذلك، فإن Amazon DocumentDB (بالتوافق مع MongoDB) عبارة عن قاعدة بيانات مستند ترميز JSON أصلية مُدارة بالكامل. تسهِّل Amazon DocumentDB تشغيل أعباء عمل المستندات المهمة على أي نطاق تقريبًا بدون إدارة البنية التحتية، على نحو فعال من حيث التكلفة.

ابدأ استخدام ترميز JSON ولغة XML على AWS من خلال إنشاء حساب مجاني اليوم.