JSON


السلام عليكم و رحمه الله تعالى و بركاته

json

JSON اختصار JavaScript Object Notation ، هى وسيله لنقل البيانات بين ال client و ال server سهل قرائتها و كتابتها من قبل المطور و سهل اعرابها و فهمها من قبل الاله ، Douglass crockford من Yahoo هو اول من اكتشف ان كائنات الجافاسكربت يمكن انتقالها بين الزبون و الخادم و تم استخدامها فى تطبيقات الياهو اول مره ، ثم الان انتشر إستخدامها فستجدها فى معظم ال api التى يقدمه اى موقع غالبا ، و بالمناسبه اذا قمت بفحص تطبيق ال gmail عن طريق FireBug ستجد ان كل الرسائل و هيكلها عباره عن رسائل JSON ، اذا كيف يبدو ال JSON هذا ؟

{name:"Mostafa",age:21} // JSON [object literal ]
[mostafa,21] // JSON [ Array ]
"mostafa,21" // JSON [ String ]
true // JSON [ Boolean ]
false // JSON [ Boolean ]
1652332.584 // JSON [ Number ]
null // JSON

يقوم السيرفر بإرسال اى صيغه من صيغ ال JSON إلى المتصفح التى غالبا ماتكون object literral ، كما يوضح المثال البسيط التالى :

<?php
// josn.php
echo "{name:'mostafa',age:21,langs:['JavaScript','PHP',XML]}";
?>

يقوم السيرفر بإرسال الكائن التالى فى صوره نص :

{
name:'mostafa',
age:21,
langs:[
         'javascript',
         'PHP',
         'XML'
        ]
}

تقوم الجافاسكربت فى المتصفح بطلب البيانات عن طريق الاجاكس و إعراب الكائن كما يلى و تستخلص البيانات منه عن طريق eval كما يوضح المثال التالى :

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
    if(xhr.readyState == 4){
        if(xhr.status == 200 || xhr.status == 304){
            var JSON = eval("("+xhr.responseText+")");
            alert(JSON.name); // mostafa
            alert(JSON.age); // 21
            alert(JSON.langs[0]); // JavaScript
        }
    }
}
xhr.open("GET","json.php",true);
xhr.send(null);

استخلاص البيانات عن طريق eval من JSON ، اسهل بكثير من استخلاص البيانات من XML عن طريق DOM .

يوجد حاليا مكاتب شامله معظم اللغات للتعامل مع JSON من بيئه السيرفر و غيرها ، لإنشاء كائنات JSON و إعرابها و فحصها ، للمزيد :
JSON.org يوجد به صفحه عربيه .

الأوسمة: ,

12 تعليق to “JSON”

  1. روابط سريعة « احمد عربي Says:

    […] الخميس-02-2009 عن تقنية JSON والتى استخدمها دائما مع Ajax فهى وسيلة التواص… […]

  2. almhajer Says:

    تسلم اناملك على المقالة شكل دوغلاس مهوس كائنات فقام يبحث عنها في كل مكان

  3. PHP0 Says:

    مشكور على هذه المقالة
    لكن لي استفسار حول JSon واللغة العربية

    كيف يتم عرض اللغة العربية مع اني حاولت لكن فشكلت وشكرا

  4. almhajer Says:

    اسعد الله اوقاتك
    اتمنى ان تشرح خطوات ال CSS selector بالتفصيل الممل
    وبخاصة (“a[@id^=’myid’]”);
    شاكرا لك مجهودك اريد اعمل سليكتور خاص بس بدي اشوف افكارك واستفيد من خبرتك
    ولك خالص الامنيات بالتوفيق

  5. mostafa farghaly Says:

    @PHP0 : لا توجد اى مشكله مع اللغه العربيه لأن الجافاسكربت تدعم unicode ، انا قمت بإستبدال جميع القيم فى المثال السابق باللغه العربيه ، و عمل المثال بشكل صحيح .

    @almhajer : كما ذكرت لك من قبل أنا انتظر كتاب Manning: Javascript ninja ، يفصل فيه جون ريسج كيفيه عمل selector engine ، بالرغم من ذلك يمكننى عمل واحد ، لكنى لا اهتم بمثل ذلك ، لأن AIR يدعم document.querySelectorAll التى تقبل CSS3 و تجلب العناصر المقابله ، يمكننى كتابه selector engine لكن لن يكون generic لأنى ليست لى تجربه مع هذه المحركات من قبل ، سأبدأ أولا بعمل RegExp يجلب قيم tagName و attribute و value و operator فى المثال الذى كتبته انت ، ثم من خلال ال DOM اكتب logic مناسب يقوم بجلب تلك القيم ، أنا لا احاول اختراع العجله من جديد ، احاول البحث والتركيز فى بيئه مثل AIR جافاسكربت الديسكتوب ، او بيئه مثل Jaxer جافاسكربت السيرفر .

  6. PHP0 Says:

    بصراحة انا من الناس اللذين يحبون مكتبة Extjs
    واعمل عليها وعلى سيرتها تمنيت في لو منتدى يتكلم عنها لكن لايوج

    اما عن استفساري عن JSON
    اقصد مع PHP لاني حاولت لكن لاتضهر لدي بالعربي
    ياريت في مثال جاهز اوكامل منك واكون شاكر لك
    لانو مكتبة Extjs تعتمد عليها فاضررتالى استخدام XML

  7. mostafa farghaly Says:

    @php0 : كنت استخدام ext منذ فتره فقط لكى اتعلمها ، لكنى توقفت بسبب عده اسباب ، مشاكلها مع اليمين لليسار ، و عدم امكانيه استخدامها فى مشاريع تجاريه إلا بعد شراء ترخيص ، بالرغم من ذلك لا يوجد اى إطار يضاهيها فى عناصر واجهه المستخدم ، لذلك لا تتوقع منى اى دروس عن ext ، بالمناسبه هناك كتاب صدر من دار نشر packet عن ext ، و التوثيق بالموقع شامل كل شىء لن تحتاج لموقع عربى .

    اما بالنسبه للعربيه مع JSON فأنا كما رديت من قبل ، لا توجد مشكله ، استبدل القيم فى المثال اللى بالموضوع بقيم عربيه و جربها ، سيعمل المثال 100% .

  8. almhajer Says:

    شكرا جزيلا اخ مصطفى ويعطيك العافية على جهودك
    وبارك الله فيك اعتقد انك ستتحول وبرايي الى adobe air الله بيوفقك وشكرا جزيلا

  9. majedimos Says:

    أخي الفاضل
    عند تنزيلي لويندوز جديد أخطأت بنقل بيانا المفضله في الفاير فوكس من الداتا على السي بعد انهيار النظام
    فجاءت المفضله بامتداد .json
    كيف يمكن لي استردادها للفاير فوكس

  10. asqs Says:

    dddsdqs

  11. Rami Kellesly Says:

    يا أخي عقدني مو راضي يكتب عربي
    https://github.com/optikalefx/OpenJS-Grid

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s


%d مدونون معجبون بهذه: