العودة إلى المدونة

نظرة عامة على تنسيق مشاركة البيانات JSON

نظرة عامة على تنسيق مشاركة البيانات JSON

ترميز كائنات JavaScript (JSON اختصارًا ويُنطق تمامًا مثل الاسم 'Jason')، هو نوع من تنسيقات مشاركة البيانات. وكما يتضح من اسمه، فإن JSON ينبع من JavaScript، ولكنه ليس مالك الكود الوحيد الذي يسمح باستخدامه. في الواقع، تتيح العديد من لغات البرمجة الأخرى استخدامه بما في ذلك Ruby, PHP, Python، و Java.

عندما يتواجد ملف JSON بمفرده، فإنه يستخدم امتداد .json، ولكن نظرًا لكونه تنسيقًا يسهل نقله بين خادم الويب والعميل (أو المتصفح)، فيمكن تعريفه أيضًا على أنه تنسيق .html. في هذه الحالة، قد يكون إما كائنًا مخصصًا لمتغير أو يظهر كسلسلة نصية لـ JSON داخل علامات اقتباس.

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

البنية & الصياغة

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

إليك مثال على شكل كائن JSON:

json object

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

هناك نقطتان رأسيتان تفصلان بين أزواج المفتاح والقيمة (“المفتاح” : “القيمة”). ويتم فصل كل من هذه الأزواج كأعضاء مختلفين في القائمة بواسطة فاصلة. ينتج عن هذا الجزء الأوسط من تنسيق JSON بالطريقة التالية: “المفتاح” : “القيمة”، “المفتاح” : “القيمة”، “المفتاح” : “القيمة”. في المثال أعلاه، "name" : "Akshay" هو أول زوج مفتاح-قيمة، على سبيل المثال.

يجب أن تكون المفاتيح في كل كائن فريدة، ويمكن عرضها كأي سلسلة نصية صالحة، ومحاطة بعلامتي اقتباس مزدوجتين (“المفتاح”)، وتوضع دائمًا على الجانب الأيسر من النقطتين الرأسيتين. في حين أن المسافات البيضاء في سلاسل المفاتيح مسموح بها (مثل في “الاسم الأول”)، إلا أنها تقدم نهجًا أكثر صعوبة من جانب البرمجة من حيث الوصول. لهذا السبب، فإن الممارسة البرمجية الشائعة هي استبدال المسافات البيضاء في المفاتيح بشرطات سفلية (“first_name”).

يتم وضع القيم في JSON على يمين النقطتين الرأسيتين. في أبسط مستوياتها، يجب أن تكون هذه القيم واحدة من 6 أنواع بيانات محددة:

  • الأرقام
  • الكائنات
  • المصفوفات
  • السلاسل النصية
  • صواب أو خطأ (Boolean)
  • Null

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

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

single line json

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

json object

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

حتى الآن لم ننظر إلا إلى تنسيق JSON في أبسط أشكاله، ولكنه يمكن أن يتطور هرميًا وبطريقة أكثر تعقيدًا عندما يتضمن كائنات ومصفوفات متداخلة. في القسم التالي، سنلقي نظرة على JSON أكثر تقدمًا.

استخدام أنواع JSON المعقدة

بالإضافة إلى المصفوفات المتداخلة، يمكن لـ JSON أيضًا تخزين الكائنات المتداخلة. سيتم نقل هذه الكائنات والمصفوفات كقيم للمفاتيح، وسيتم ربطها بالمفاتيح لتشكيل أزواج مفتاح-قيمة.

  • تكوين الكائنات المتداخلة

في ملف users.json صورة ملف، هناك كائن JSON متداخل ممرر لكل مستخدم من المستخدمين الأربعة (“akshay”, “sam”, “Andrew”, “James”). يمتلك كل مستخدم مفاتيحه المتداخلة الخاصة (“location” و “username”):

nested

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

  • تكوين المصفوفات المتداخلة

يمكن أيضًا الاستفادة من مصفوفات Javascript الممررة كقيمة لتداخل البيانات داخل تنسيق JSON. يتم ذلك باستخدام [ ] (الأقواس المربعة) في نهاية أنواع المصفوفات، حيث تكون المصفوفات عبارة عن قوائم منظمة تتضمن أنواع بيانات فريدة:

array

في القسم المظلل من الأمثلة أعلاه، يتم استخدام ملفي تعريف وسائل التواصل الاجتماعي ورابطي موقع الويب الخاصين بـ Akshays’s داخل مصفوفة من المعلومات المتداخلة، بسبب وجود الأقواس المربعة. من خلال تضمين التداخل بهذه الطريقة في JSON، يمكننا تحقيق المزيد من المرونة في التعامل مع محتوى البيانات الهرمي والمعقد.

  • مقارنة XML

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

xml vs json

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

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

معرفة المزيد عن JSON

تنسيق JSON هو تنسيق متعدد الاستخدامات وطبيعي يمكن تطبيقه عبر لغات برمجة متعددة. ستتمكن من العثور على القائمة الكاملة للغات المدعومة في صفحة “Introducing JSON”. بالإضافة إلى ذلك، يمكن العثور على معلومات التحليل والتوافق في “iQuery library.”

في النهاية، على الأرجح لن تكتب JSON العادي كثيرًا. بدلاً من ذلك، ستقوم بسحبه من مصادر البيانات أو ترجمة ملفات البيانات الأخرى إلى JSON. باستخدام الأداة مفتوحة المصدر Mr. Data Converter، يمكنك ترجمة بيانات CSV أو البيانات المفصولة بعلامات جدولة الموجودة في برامج الجداول الحسابية إلى JSON. ومع ترخيص المشاع الإبداعي لـ utilities-online.info، يمكنك ترجمة XML إلى JSON والعكس بالعكس. عند استخدام البرامج الآلية، تحقق جيدًا من التقارير للتخلص من أي تكرار.

يمكنك أيضًا استخدام JSONLint للتحقق من صحة JSON الخاص بك و JFiddle لتقييمه في سياق تطوير الويب عند تحويل الأنواع الأخرى إلى تنسيق JSON.

الخاتمة

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

إليك المزيد من الموارد من our blog التي ستساعدك على البرمجة باستخدام JavaScript:

حوسبة سعيدة!

author

Akshay Nagpal

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.