รูปแบบการแลกเปลี่ยนข้อมูลน้ำหนักเบา JSON
เมื่อเทียบกับ XML การแยกวิเคราะห์ JSON เร็วขึ้นและมีเอกสารที่เล็กกว่า
รูปแบบ JSON
{ชื่อแอตทริบิวต์: ค่าแอตทริบิวต์ชื่อแอตทริบิวต์: ค่าแอตทริบิวต์, ... }
ประเภทของชื่อแอตทริบิวต์สามารถเป็นสตริงหมายเลขบูลีนโมฆะวัตถุและชื่อแอตทริบิวต์จะต้องอยู่ในคำพูดสองเท่า หากค่าแอตทริบิวต์เป็นสตริงก็จะต้องถูกปิดล้อมในคำพูดสองครั้ง
JSON แสดงถึงอาร์เรย์
รูปแบบ: [ค่า, ค่า, ค่า] โดยที่ค่าอาจเป็นประเภทข้อมูลพื้นฐานหรือประเภทวัตถุหรือประเภทอาร์เรย์
ประเภทอาร์เรย์ [{"ชื่อ": "yangjq", "อายุ": 22}, {"ชื่อ": "Andreny", "อายุ": 21}];ประเภทวัตถุ ["ชื่อ": "Andreny", "Hobby": ["Sing", "Dance", "Eat"]]]]
แปลง
กราฟ LRJSON String -> วัตถุ JavaScript
1. ใช้ฟังก์ชั่นดั้งเดิมของ JavaScript: Eval () แต่วิธีนี้เป็นอันตรายและคุณต้องระมัดระวังเมื่อใช้งาน
var str = {"ชื่อ": "yangjq", "อายุ": 23}; var obj = eval ("("+str+")"); แจ้งเตือน (obj.name);2. ใช้วิธีการแยกวิเคราะห์ () ที่จัดทำโดยวัตถุดั้งเดิม JSON หากวัตถุนี้ไม่ถูกต้องหมายความว่ารุ่นเบราว์เซอร์ของคุณต่ำเกินไป! - -
var str = {"ชื่อ": "Andreny", "อายุ": 22}; var obj = json.parse (str); แจ้งเตือน (obj.name);3. วิธีการเพิ่มสตริงโดยใช้ไฟล์ json.js
var str = {"ชื่อ": "น่ารัก erha", "อายุ": 9}; var obj = str.parsejson (); แจ้งเตือน (obj.name);แปลงวัตถุ JSON เป็นสตริง JSON
กราฟ LRJSON OBJECT -> สตริง JSON
การใช้ API ที่จัดทำโดย JSON: JSONObject, วิธีการที่จัดทำโดย JSONARRAY
// วิธีแรก emp emp = new emp ("1", "Andreny", "man"); jsonobject obj = jsonobject.fromobject (emp); string jsonstr = obj.tostring (); // วิธีที่สอง var obj = "ชื่อ" str2 = obj.json.stringify ();ปัญหาการแคชที่เกี่ยวข้องกับ Ajax เมื่อส่งคำขอ
== หมายเหตุ ==: เมื่อส่งคำขอวัตถุ AJAX ที่เบราว์เซอร์ IE ให้ไว้จะตรวจสอบก่อนว่ามีการเข้าถึงที่อยู่หรือไม่ หากเข้าถึงได้เบราว์เซอร์จะไม่ส่งคำขออีกต่อไป
กลไกสำหรับเบราว์เซอร์ที่แตกต่างกันในการรักษาแคช
Chrome ยังคงส่งคำขอ
Firefox ยังคงส่งคำขอ
เช่นเบราว์เซอร์ไม่ส่งคำขออีกต่อไป
จะป้องกันไม่ให้เบราว์เซอร์ส่งคำขอเนื่องจากแคช?
เพิ่มหมายเลขสุ่มหลังจากที่อยู่คำขอ
xhr.open ('get', 'getnumber.do?+math.random(), true);ส่งคำขอโพสต์
คำถามบางอย่างเกี่ยวกับการซิงโครไนซ์
หลังจากส่งคำขอการซิงโครไนซ์เบราว์เซอร์จะต้องรอให้การตอบกลับของเซิร์ฟเวอร์มาถึงก่อนที่จะดำเนินการต่อในหน้าต่อไป เมื่อ Ajax ส่งคำขอการซิงโครไนซ์เบราว์เซอร์จะล็อคหน้าปัจจุบัน
รหัสทดสอบ
แพ็คเกจ yangjq.test; นำเข้า java.util.arraylist; นำเข้า java.util.list; นำเข้า net.sf.json.jsonarray; นำเข้า net.sf.json.jsonobject; นำเข้า Yangjq.entity.friend; {System.out.println ("-------------------------"); test1 (); test2 (); test3 (); test4 ();} // แปลงวัตถุ Java เป็น json String โมฆะสาธารณะคงที่ test1 () {เพื่อน f = เพื่อนใหม่ (); f.setName ("และ reny") obj = jsonobject.fromobject (f); system.out.println (obj.toString ());} // แปลงคอลเลคชั่น JSON เป็น JSON String โมฆะสาธารณะคงที่ test2 () {รายการ <เพื่อน> fs = ใหม่ ArrayList <Friend> (); สำหรับ (int i = 0; i <10; i ++) {เพื่อน f = เพื่อนใหม่ (); 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 ());} // json String ถูกแปลงเป็น Java Object jsonstr = "{/" ชื่อ/":/" Andreny/",/" อายุ/": 22}"; jsonobject obj = jsonobject.fromobject (jsonstr); เพื่อนเพื่อน = (เพื่อน) jsonobject.tobean (obj, friend.class); system.out.println ("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - "{/" ชื่อ/":/" Andreny/",/" อายุ/": 23}]"; jsonarray obj = jsonarray.fromobject (jsonstr); รายการ <เพื่อน> เพื่อน = (รายการ <เพื่อน>) jsonarray.tocollection (obj, friend.class); system.out.println ("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ผลการทำงาน:
--------------- {"อายุ": 23, "ชื่อ": "Andreny"} ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - [name = yangjq8, อายุ = 20], เพื่อน [ชื่อ = yangjq9, อายุ = 21]] [{"อายุ": 12, "ชื่อ": "Yangjq0"}, {"อายุ": 13, "ชื่อ": "Yangjq1"}, {"อายุ": 14, "ชื่อ": "Yang jq2 "}, {" อายุ ": 15," ชื่อ ":" yangjq3 "}, {" อายุ ": 16," ชื่อ ":" yangjq4 "}, {" อายุ ": 17," ชื่อ ":" Yangjq5 " }, {"อายุ": 18, "ชื่อ": "Yangjq6"}, {"อายุ": 19, "ชื่อ": "Yangjq7"}, {"อายุ": 20, "ชื่อ": "Yangjq8"}, {"อายุ": 21, "ชื่อ": "Yangjq9"} - - [ชื่อ = Andreny, อายุ = 22] -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -สรุป
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ที่เกี่ยวกับการแลกเปลี่ยนข้อมูลของ JSON ปัญหาการแคชและการซิงโครไนซ์ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!