مدونة الويب 2.0

  • الرئيسية
  • تعريف بالمدونة
  • المصادر
  • تواصل معي
  • أخبار المدونة
  • أفكار
  • استبيان
  • برمجة
  • تصميم
  • تطوير
  • كتب
  • مدونات عربية
  • مهمات
  • مواقع

ماهي JSON؟

30, سبتمبر 2008 التصنيف: برمجة

ماهي JSON؟

اختصار لـ (Javascript Object Notation) وهي تنسيق لتخزين المعلومات بطريقة خفيفة وسهلة، JSON تأتي بالأساس مع Javascript وبالإمكان أيضاً التعامل معها من لغات غيرها، وتعتبر منافساً حقيقياً للـ XML وخصوصاً عند استخدام Ajax.

هل هي أفضل من XML؟

تعتبر أفضل منه لعدة أسباب، التعامل مع XML يختلف من متصفح لآخر بينما JSON موحدة. بنية JSON تسمح لها بتخزين المعلومات بحجم أقل بكثير من XML أي في XML يوجد هدر فهناك الكثير من الوسوم أما JSON فلا يوجد هدر، وتريحك أيضاً من التعامل مع DOM في XML. أيضاً تحليل XML يستهلك ذاكرة أكثر من تحليل JSON. أيضاً PHP5 تأتي معها مكتبة للتعامل مع JSON !

كيف نستخدمها؟

أولاً لمحة سريعة عن أنواع المصفوفات في JavaScrpit:

النوع الأول:

		var myComputer = ["keyboard", "mouse", "screen"];
		

في هذا النوع يتم توليد دليل المصفوفة (0, 1, 2) بشكل تلقائي لأننا استخدمنا []،شاهد كيف يتم استعراضها:

		alert(myComputer[0]); // alerts keyboard
		alert(myComputer[1]); // alerts mouse
		alert(myComputer[2]); // alerts screen
		

النوع الثاني:

		var myName = {
			"firstName": "Khaled",
			"lastName": "Al Hourani"
		};
		

هنا نحن وضعنا دليل المصفوفة وميزنا المصفوفة بالأقواس {}، وعند عرضهم:

		alert(myName['firstName']); // alerts Khaled
		alert(myName['lastName']); // alerts Al Hourani
		

بعد هذه الجولة السريعة في مصفوفات الجافاسكربت سنجد أن تنسيق JSON بسيط جداً، شاهد هذا المثال:

		var myComputer =
		[
			"keyboard",
			"mouse",
			"screen"
		]
		

إنها عبارة عن مصفوفات! وكما في المثال الذي ذكرناه سيتم توليد الدليل تلقائياً:

		alert(myComputer[0]); // alerts keyboard
		alert(myComputer[1]); // alerts mouse
		alert(myComputer[2]); // alerts screen
		

ومثال آخر:

		var myName =
		[
			"firstName": "Khaled",
			"lastName": "Al Hourani"
		]
		

وعند عرض النتائج يجب أن نكتب الدليل:

		alert(myName['firstName']); // alerts Khaled
		alert(myName['lastName']); // alerts Al Hourani
		

وأيضاً مثال معقد قليلاً:

		var myInfo =
		{
			"firstName": "Khaled",
			"lastName": "Al Hourani",
			"address": {
				"streetAddress": "11 Street",
				"city": "Damascus",
				"country": "Syria"
			},
			"phoneNumbers": [
				"+963-955-153205",
				"+963-11-212910",
			]
		}
		

نعرف كيف يمكننا عرض المعلومات كمصفوفة، ولكن الهدف من JSON هو التعامل معهم ككائن (object)، لذلك سنقوم بتحويل هذه المصفوفة إلى كائن عن طريق تابع (دالة) eval:

		var p = eval(myInfo);
		alert(p.firstName);
		alert(p.phoneNumbers[0]);
		

ماهي سيئة JSON؟

بما أنها بسيطة فهي ليست مفضلة عند التعامل مع بيانات كبيرة ومعقدة، الأفضل هنا هو استخدام XML.

شارك هذه التدوينة:
إضافة 'ماهي JSON؟' إلى Del.icio.usإضافة 'ماهي JSON؟' إلى diggإضافة 'ماهي JSON؟' إلى Technoratiإضافة 'ماهي JSON؟' إلى Stumble Uponإضافة 'ماهي JSON؟' إلى Google Bookmarksإضافة 'ماهي JSON؟' إلى FaceBookإضافة 'ماهي JSON؟' إلى MySpaceإضافة 'ماهي JSON؟' إلى Twitterإضافة 'ماهي JSON؟' إلى FriendFeed
الوسوم: تدوينات رمضان, نصائح
أرسل هذه التدوينة لصديق أرسل هذه التدوينة لصديق
طباعة هذه التدوينة طباعة هذه التدوينة

    إقرأ أيضاً:

    • إضافة “الأكثر مشاهدة”
    • Ubiquity سطر أوامر الفايرفوكس
    • تنقيح الكود باستخدام PDT + Xdebug
    • كتاب الكود النظيف
    • نصائح php الجزء الثالث

11 تعليق في “ماهي JSON؟”

  1. Qinq: 1, أكتوبر 2008 في 1:04 ص

    “إلى كائن عن طريق تابع (دالة) eval:”
    eval === evil
    “التعامل مع XML يختلف من متصفح لآخر بينما JSON موحدة”
    العكس هو الصحيح ال Standarization فى ال XML احسن من ال JavaScript
    “أيضاً PHP5 تأتي معها مكتبة للتعامل مع JSON”
    وهناك ايضا عدد هاائل من مكتبات ال XML
    “مع بيانات كبيرة ومعقدة”
    لماذا ؟ ما الذى لا تستطيعه JSON و تستطيعه XML … أقول لك ال Standarization فى حاله ال XML هو already established أما فى حاله ال JSON ف ؟؟

    .. لم تعرض مشاكل ال Security فيها ..
    ولكنها ما تزال فكره جيده ولها جمهور محترم ومستخدمين


  2. خالد: 1, أكتوبر 2008 في 3:59 ص

    1- eval: مامشكلتك معها!
    2- التعامل مع JSON موحد بينما مع XML غير موحد وعانيت من هذا الأمر كثيراً، يعني مجربها.
    3- لم أتكلم بأن PHP لاتحوي مكاتب للتعامل مع XML؟!
    4- لم تأتي بحقائق! مجرد رأي شخصي!
    5- لم أتطرق لهذا الأمر من قبل لذلك لا أتكلم بما لا أعرف


  3. Ahmed Mahmoud: 1, أكتوبر 2008 في 12:58 م

    شكرا خالد في الحقيقة افادتني هذه المقاله و لو ارفقت مع المقال ملف ديمو بسيط لكيفية استدعاء بعض المعلومات المخزنة في ملف JSON و ليكن عن طريق البي اتش بي مثلا سيكون رائعا
    ايضا لم افهم ما تقوم به دالة eval
    اعذر قصور معلوماتي في هذا الشأن و شكرا لك و ننتظر منك موضوعات مثل هذه مستقبلا


  4. خالد: 2, أكتوبر 2008 في 12:58 ص

    eval يقوم بالكثير من الوظائف وباختصار تستطيع من خلاله إنشاء وتنفيذ الجافاسكربت.

    بالنسبة لل JSON مع PHP سأكتب عنه إن شاء الله قريباً


  5. فراس: 2, أكتوبر 2008 في 6:09 م

    شكراً لك خالد , مقالة مُفيدة و على فكرة زكرتني بالــ Structure in C++ .

    تحياتي
    فراس


  6. Qinq: 4, أكتوبر 2008 في 10:37 م

    1) eval===evil
    هذه الداله واحد من اخطر المصايب والغريب يا اخى ان تضعها هكذا وتدافع عنها… انت تأخذ اشياء من العالم الخارجى المجنون وتمررها ل eval مباشرة وتقول لى ما المشكله !!؟
    2)اثبت. هات امثله كلامك غير عملى هناك فرق بين اختلاف طرق التعامل- وهو مفيد ويدل على الثراء- و التنوع واختلاف الصيغ … ال JSON مبينيه على كونها Js Compilant ولما كانت عمليه ال Standarization فى ال JS ليست فى احسن الاحوال فهى اسوا من ال XML من هذه الناحيه
    3) —
    4) سألتك سؤال ورددت عليه بأن كلامى شخصى… بالعكس رأيك انت أخى خالد هو الاقرب للذاتيه والشخصيه..رد على سؤالى واذكر التطبيقات


  7. خالد: 4, أكتوبر 2008 في 11:08 م

    1- يا أخي أنت حكيت هالجملة فهات الدليل! ليس للتحدي ولكن لإثراء الموضوع فلا أحد فينا معصوم عن الخطأ. يعني أنا معلوماتي أنها لاتسبب مشاكل وأنت قلت العكس ففسر لنا كلامك.

    2- هوووووه شكلك مو متعامل مع XML في JS أبداً! أبسط مثال هو عملية تحميل الملف في IE وفي باقي المتصفحات:
    http://www.w3schools.com/Dom/dom_parser.asp
    ومن ثم تأتيك الاختلافات في DOM

    3- —- :)

    4- لم أفهم عليك قصدك؟ أعد السؤال لو سمحت.

    5- اذكر لنا المشاكل الأمنية لو سمحت حتى يصبح الموضوع جميلاً

    لاتغضب ولا على بالك … بس لاتبخل علينا بالمعلومات يعني اذكر ماتريده بالتفصيل الممل :)


  8. JSON و PHP | مدونة الويب 2.0: 6, أكتوبر 2008 في 8:48 ص

    [...] التدوينة تلبية لطلب الأخ أحمد محمود عن شرح التعامل مع JSON في [...]


  9. sami2009: 28, فبراير 2009 في 12:55 ص

    شيء جميل جدا

    شكرا لك ..


  10. أحمد ماهر: 18, أبريل 2009 في 5:10 م

    التعامل مع ال xml هو الأفضل بلا شك
    اما json فهي كغالب ال javascript غير متوافقة مع كل المتصفحات
    اما xml فهي دائما متوافقة مع كل شئ لغات البرمجة والمتصفحات


  11. خالد: 18, أبريل 2009 في 7:18 م

    لا يوجد أفضل هنا فالطريقتين معاريتين وبالعكس تماماً ال xml له مشاكله في IE بينما JSON تعمل تماماً على كافة المتصفحات وبشكل أسرع من XML لأنها وبكل بساطة مصفوفة.


شاركنا برأيك؟

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

  • الأكثر قراءة
  • الأحدث
  • الأرشيف
  • تعلم الكيك وتطوير المواقع بالبيت
  • تنظيم الوقت البرمجي
  • أفكار ومواقع ويب 2 شهيرة
  • مقدمة في CakePHP
  • لماذا غوغل شريرة!
  • الخطوط العربية
  • تصميم قاعدة البيانات
  • هل تريد أن تكسب 1000 دولار؟
  • مواقع عربية بالدروبال
  • موقع الجزيرة الجديد
    1. غوغل، جوجل، كوكل أو قوقل!
    2. دروبال تعلمه بالعربي
    3. تحديثات بالجملة
    4. صفحة 404
    5. مدونة الويب 2.0 في 2010
    6. عن غيوم
    7. وحدة Scrollable Content لدروبال
    8. موقع بدون قاعدة بيانات
    9. دول العالم باللغة العربية
    10. ثيم خفيفة للفايرفوكس
    1. أغسطس 2010
    2. مارس 2010
    3. فبراير 2010
    4. يناير 2010
    5. ديسمبر 2009
    6. سبتمبر 2009
    7. أغسطس 2009
    8. يوليو 2009
    9. يونيو 2009
    10. مايو 2009
    11. مارس 2009
    12. فبراير 2009
    13. يناير 2009
    14. ديسمبر 2008
    15. نوفمبر 2008
    16. أكتوبر 2008
    17. سبتمبر 2008
    18. أغسطس 2008
    19. يوليو 2008
    20. يونيو 2008
    • اشترك بآخر الأخبار RSS

      Feeds Counter

      أو

    • الاستبيان

      هل طورت أو ساعدت بتطوير مشروع مفتوح المصدر؟

      مشاهدة النتيجة

      Loading ... Loading ...
    • أوسمة

      Ajax css IDE jQuery php SEO TinyMCE أخبار المدونة أذكار أطر العمل أفكار إدارة المحتوى إدارة محتوى إضافات استبيان الأجاكس الأمان الاختبارات الآلية الكيك برمجة تحديثات تحميل تدوينات رمضان تصميم تطوير تعريب تعلم الكيك وتطوير المواقع بالبيت تكتيك تنظيم الوقت جوائز حديث دروبال دعاية فايرفوكس فرص عمل كتب مسابقات مهمات مواقع نصائح هندسة برمجيات وورد بريس

    حول المدونة

    • جميع الحقوق محفوظة © 2008-2010 مدونة الويب 2.0.
    • يمكنك نقل المحتويات أو اقتباس أي جزء منها ويفضل ذكر المصدر.
    • من الممكن أن تساعدك خريطة الموقع.

    عروض العمل

    • يمكنك أن تناقشني حول عروض العمل للمدونات أو لمواقع الويب 2.0.
    • أيضاً يمكنك استشارتي في وضع التفاصيل لمدونة أو لفكرة مشروع جديد.
    • سيرتي الذاتية على My Linkedin Profile

    تواصل معي

    • خالد الحوراني مطور ويب 2.0
    • دمشق - سوريا
    • تابع أخباري على My Twitter account
    • أو راسلني فوراً