السلام عليكم و رحمه الله تعالى و بركاته
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 يوجد به صفحه عربيه .
الأوسمة: javascript, json

19/02/2009 عند 4:15 م |
[...] الخميس-02-2009 عن تقنية JSON والتى استخدمها دائما مع Ajax فهى وسيلة التواص… [...]
19/02/2009 عند 11:44 م |
تسلم اناملك على المقالة شكل دوغلاس مهوس كائنات فقام يبحث عنها في كل مكان
22/02/2009 عند 2:58 م |
مشكور على هذه المقالة
لكن لي استفسار حول JSon واللغة العربية
كيف يتم عرض اللغة العربية مع اني حاولت لكن فشكلت وشكرا
22/02/2009 عند 4:38 م |
اسعد الله اوقاتك
اتمنى ان تشرح خطوات ال CSS selector بالتفصيل الممل
وبخاصة (“a[@id^='myid']“);
شاكرا لك مجهودك اريد اعمل سليكتور خاص بس بدي اشوف افكارك واستفيد من خبرتك
ولك خالص الامنيات بالتوفيق
22/02/2009 عند 6:00 م |
@PHP0 : لا توجد اى مشكله مع اللغه العربيه لأن الجافاسكربت تدعم unicode ، انا قمت بإستبدال جميع القيم فى المثال السابق باللغه العربيه ، و عمل المثال بشكل صحيح .
@almhajer : كما ذكرت لك من قبل أنا انتظر كتاب Manning: Javascript ninja ، يفصل فيه جون ريسج كيفيه عمل selector engine ، بالرغم من ذلك يمكننى عمل واحد ، لكنى لا اهتم بمثل ذلك ، لأن AIR يدعم document.querySelectorAll التى تقبل CSS3 و تجلب العناصر المقابله ، يمكننى كتابه selector engine لكن لن يكون generic لأنى ليست لى تجربه مع هذه المحركات من قبل ، سأبدأ أولا بعمل RegExp يجلب قيم tagName و attribute و value و operator فى المثال الذى كتبته انت ، ثم من خلال ال DOM اكتب logic مناسب يقوم بجلب تلك القيم ، أنا لا احاول اختراع العجله من جديد ، احاول البحث والتركيز فى بيئه مثل AIR جافاسكربت الديسكتوب ، او بيئه مثل Jaxer جافاسكربت السيرفر .
22/02/2009 عند 8:16 م |
بصراحة انا من الناس اللذين يحبون مكتبة Extjs
واعمل عليها وعلى سيرتها تمنيت في لو منتدى يتكلم عنها لكن لايوج
اما عن استفساري عن JSON
اقصد مع PHP لاني حاولت لكن لاتضهر لدي بالعربي
ياريت في مثال جاهز اوكامل منك واكون شاكر لك
لانو مكتبة Extjs تعتمد عليها فاضررتالى استخدام XML
22/02/2009 عند 10:27 م |
@php0 : كنت استخدام ext منذ فتره فقط لكى اتعلمها ، لكنى توقفت بسبب عده اسباب ، مشاكلها مع اليمين لليسار ، و عدم امكانيه استخدامها فى مشاريع تجاريه إلا بعد شراء ترخيص ، بالرغم من ذلك لا يوجد اى إطار يضاهيها فى عناصر واجهه المستخدم ، لذلك لا تتوقع منى اى دروس عن ext ، بالمناسبه هناك كتاب صدر من دار نشر packet عن ext ، و التوثيق بالموقع شامل كل شىء لن تحتاج لموقع عربى .
اما بالنسبه للعربيه مع JSON فأنا كما رديت من قبل ، لا توجد مشكله ، استبدل القيم فى المثال اللى بالموضوع بقيم عربيه و جربها ، سيعمل المثال 100% .
23/02/2009 عند 5:01 ص |
شكرا جزيلا اخ مصطفى ويعطيك العافية على جهودك
وبارك الله فيك اعتقد انك ستتحول وبرايي الى adobe air الله بيوفقك وشكرا جزيلا
06/07/2009 عند 9:40 م |
أخي الفاضل
عند تنزيلي لويندوز جديد أخطأت بنقل بيانا المفضله في الفاير فوكس من الداتا على السي بعد انهيار النظام
فجاءت المفضله بامتداد .json
كيف يمكن لي استردادها للفاير فوكس
06/07/2009 عند 11:10 م |
انا اسف يا ماجد لم تقابلنى هذه المشكله من قبل ، و لا اأعرف كيف حلها