تنسيق تبادل البيانات الخفيفة في JSON
بالمقارنة مع XML ، فإن JSON تخلق أسرع ولديه مستندات أصغر.
تنسيق JSON
{اسم السمة: قيمة السمة ، اسم السمة: قيمة السمة ، ...}
يمكن أن يكون نوع اسم السمة هو السلسلة والرقم والطليفية والخالية والكائن واسم السمة في عروض أسعار مزدوجة. إذا كانت قيمة السمة عبارة عن سلسلة ، فيجب أن تكون محاطة أيضًا باقتباس مزدوج.
يمثل JSON صفيفًا
التنسيق: [القيمة ، القيمة ، القيمة] ، حيث يمكن أن تكون القيمة نوع بيانات أساسي أو نوع كائن أو نوع صفيف
نوع الصفيف [{"name": "yangjq" ، "Age": 22} ، {"name": "Andreny" ، "Age": 21}] ؛نوع الكائن ["الاسم": "Andreny" ، "Hobby": ["Sing" ، "Dance" ، "Eat"]]
يتحول
Graph Lrjson String -> كائن JavaScript
1. استخدم وظيفة JavaScript الأصلية: eval () ، ولكن هذه الطريقة خطيرة وتحتاج إلى توخي الحذر عند استخدامها.
var str = {"name": "yangjq" ، "Age": 23} ؛ var obj = eval ("("+str+")") ؛ ALERT (OBJ.NAME) ؛2. استخدم طريقة Parse () التي توفرها الكائن الأصلي JSON. إذا كان هذا الكائن غير صالح ، فهذا يعني أن إصدار المتصفح الخاص بك منخفض جدًا! ! !
var str = {"name": "Andreny" ، "Age": 22} ؛ var obj = json.parse (str) ؛ Alert (obj.name) ؛3. طريقة لإضافة سلاسل باستخدام ملف json.js.
var str = {"name": "cute erha" ، "Age": 9} ؛ var obj = str.parsejson () ؛ Alert (obj.name) ؛تحويل كائن JSON إلى سلسلة JSON
كائن Lrjson الرسم البياني -> سلسلة JSON
باستخدام واجهة برمجة التطبيقات التي توفرها JSON: JSONOBject ، الطريقة التي يقدمها JSONARRAY
// الطريقة الأولى EMP EMP = NEW EMP ("1" ، "Andreny" ، "Man") ؛ JSonObject OBJ = JSONOBJECT.FROMOBJECT (EMP) ؛ String jSonstr = obj.toString () ؛ // الطريقة الثانية var obj = {"name": str2 = obj.json.stringify () ؛تخزين المؤقت المشكلات في أياكس عند إرسال الطلبات
== ملاحظة ==: عند إرسال طلب ، سيقوم كائن AJAX المقدم من متصفح IE أولاً التحقق مما إذا كان قد وصل إلى العنوان. إذا تم الوصول إليه ، فلن يرسل المتصفح الطلب.
آليات للمتصفحات المختلفة لعلاج ذاكرة التخزين المؤقت
يستمر Chrome في إرسال الطلبات
تواصل Firefox إرسال الطلبات
لم يعد متصفح IE يرسل الطلبات
كيفية منع المتصفح من إرسال الطلبات بسبب ذاكرة التخزين المؤقت؟
إضافة رقم عشوائي بعد عنوان الطلب
XHR.Open ('get' ، 'getNumber.do؟+math.random() ، atrue) ؛إرسال طلب البريد
بعض الأسئلة حول التزامن
بعد إرسال طلب التزامن ، يجب على المتصفح انتظار وصول استجابة الخادم قبل الاستمرار في العمل في الصفحة. عندما يرسل Ajax طلب المزامنة ، سيقوم المتصفح بإغلاق الصفحة الحالية.
رمز الاختبار
package yangjq.test ؛ استيراد java.util.arraylist ؛ استيراد java.util.list ؛ استيراد net.sf.json.jsonarray ؛ استيراد net.sf.json.jsonobject ؛ استيراد yangjq.entity.friend ؛ فئة عامة jsontest {public static void main (string [] args [] {system.out.println ("-----------------------") ؛ test1 () ؛ test2 () ؛ test3 () ؛ test4 () ؛} // تحويل كائن Java إلى json String public static void test1 () {friend f = new friend () ؛ f.setname ("andreny") ؛ f.setage (23) OBJ = jSonObject.fromObject (f) ؛ system.out.println (obj.toString ()) ؛} // تحويل مجموعة JSON إلى json String public static void test2 () {list <friend> fs = new ArrayList <Friend> () ؛ لـ (int i = 0 ؛ i <10 ؛ i ++) {friend f = new friend () ؛ f.setName ("yangjq"+i) ؛ f.setage (12+i) ؛ fs.add (f) ؛} jsonarray ja = jsonarray.fromobject (fs) ؛ system.out.println ("------------/n"+fs) ؛ system.out.println (ja.toString () jsonstr = "{/" name/":/" Andreny/"،/" Age/": 22}" ؛ jsonobject.tobean (obj ، friend.class) ؛ system.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- "{/" name/":/" Andreny/"،/" Age/": 23}]" ؛ Jsonarray obj = jsonarray.fromObject (jsonstr) ؛ قائمة <Friend> friends = (list <friend>) jsonarray.tocollection (obj ، friend.class) ؛ system.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------نتائج التشغيل:
----------------- {"Age": 23 ، "Name": "Andreny"} -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [name = yangjq8 ، Age = 20] ، صديق [name = yangjq9 العمر = 21]] [{"Age": 12 ، "name": "Yangjq0"} ، {"Age": 13 ، "name": "Yangjq1} ، {" Age ": 14 ،" name ":" Yang JQ2 "} ، {" Age ": 15 ،" Name ":" Yangjq3 "} ، {" Age ": 16 ،" Name ":" Yangjq4} ، {"Age": 17 ، } ، {"Age": 18 ، "name": "yangjq6"} ، {"age": 19 ، "name": ----------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [الاسم = Andreny ، العمر = 22] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------لخص
ما سبق يدور حول هذا المقال الذي يناقش مشكلات تبادل بيانات JSON وتخزين المؤقت والمزامنة. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!