1. บทนำสู่ JSON
JSON (Notation Object JavaScript) คล้ายกับ XML เป็นรูปแบบการแลกเปลี่ยนข้อมูล ตัวอย่างเช่นหาก Java สร้างข้อมูลไปยัง JavaScript นอกเหนือจากการใช้ XML คุณยังสามารถใช้ JSON ได้
ข้อได้เปรียบของ JSON มากกว่า XML คือมันง่ายมากที่จะแสดงออก เว็บไซต์อย่างเป็นทางการ: http://www.json.org/
JSON คือ X ใน AJAX (นั่นคือสามารถแทนที่ XML); ------ จากผู้ก่อตั้ง JSON;
หมายเหตุ: JSON ไม่ใช่รูปแบบเอกสารไม่มีเอกสาร *.JSON โดยทั่วไปเอกสารรูปแบบ JSON พบได้ใน TXT และ XML อาจเป็นมาตรฐาน
JSON Online Editor: http://tools.vevb.com/tools/json/json_editor.htm
2. โครงสร้างข้อมูล JSON
JSON มีสองโครงสร้างข้อมูล:
(1) แผนที่หรือที่เรียกว่าวัตถุ; -
(2) อาร์เรย์; -
กล่าวคือวัตถุ JSON ทั้งหมดควรแสดงในรูปแบบเหล่านี้
1. แมป
พูดง่ายๆคือแผนที่ในชวา มีการให้คู่ชื่อชื่อและชื่อและค่าจะถูกคั่นด้วย ":" และแผนที่ทั้งสองจะคั่นด้วย "," และการเป็นตัวแทนทั่วไปมีดังนี้:
{'key1': 'value1', 'key2': 'value2'}
ต่อไปนี้เป็นรูปภาพเว็บไซต์อย่างเป็นทางการ:
2. อาเรย์
มันเป็นอาร์เรย์ในความหมายปกติโดยมีรูปแบบทั่วไปดังนี้:
['arr1', 'arr2', 'arr3'];
ต่อไปนี้เป็นรูปภาพเว็บไซต์อย่างเป็นทางการ:
ค่าในรูปสามารถ:
สรุป:
(1) มีโครงสร้างข้อมูลเพียงสองประเภทใน JSON
(2) สามารถซ้อนกันได้เช่นวัตถุสามารถซ้อนกันในอาร์เรย์
(3) จำไว้ว่า: วัตถุถูกแทนด้วย {} และอาเรย์แสดงโดย [];
3. ตัวอย่างของการแปลง JSON และ XML
XML ใด ๆ ที่กล่าวถึงข้างต้นสามารถแปลงเป็นแพ็คเกจ JSON;
1. XML ง่ายๆ
รูปแบบ XML:
<person> <name> Xiazdong </name> <s Age> 20 </ge> </person>
รูปแบบ JSON:
{"ชื่อ": "Xiazdong", "อายุ": 20}2. XML ที่ซับซ้อน
รูปแบบ XML:
<section> <title> หนังสือ </title> <การลงนาม> <ชื่อผู้เขียน = "ผู้แต่ง 1"/> <ราคาหนังสือ = "$ 11"/> </การลงนาม> <การลงชื่อเข้าใช้> <ชื่อผู้เขียน = "ผู้แต่ง 2"/> <ราคาหนังสือ = "$ 22"/> </การลงนาม>
รูปแบบ JSON:
"Section": {"title": "หนังสือ", "การลงชื่อ": [{<span style = "White-Space: pre"> </span> "ผู้แต่ง": {"ชื่อ": "ผู้แต่ง 1"}, "หนังสือ": "ชื่อ": "หนังสือ": ":": "" "ราคา": "$ 22"}} <span style = "space white-space: pre"> </span>]}}หมายเหตุ: คุณสมบัติใน XML จะแสดงด้วยแผนที่ของ JSON;
4. แพ็คเกจ JSON
หากเราต้องการใช้แพ็คเกจ JSON เราสามารถดาวน์โหลดซอร์สโค้ดของแพ็คเกจ JSON และเพิ่มรหัสเหล่านี้ลงในโครงการ Eclipse และเรียกมันว่า
หากคุณต้องการดูเอกสาร API คุณจะเห็น: http://www.json.org/java/index.html
สองคลาสที่ใช้กันมากที่สุดในแพ็คเกจ JSON คือ JSONObject และ JSONARRAY ซึ่งเป็นตัวแทนของโครงสร้างข้อมูลสองอย่างตามลำดับ
1. อินสแตนซ์รหัส JSONOBJECT
แพ็คเกจ com.xiazdong.json; นำเข้า weibo4j.org.json.jsonarray; นำเข้า weibo4j.org.json.jsonobject; การทดสอบระดับสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {jsonObject jsonobj = new JsonObject ("{'ชื่อ': 'xiazdong', 'อายุ': 20}"); ชื่อสตริง = jsonobj.getString ("ชื่อ"); อายุ int = jsonobj.getint ("อายุ"); System.out.println (ชื่อ+":"+อายุ); -2. อินสแตนซ์รหัส JSONARRAY
jsonArray array = new JsonArray (String str); // แปลงสตริงเป็นความยาว jsonArrayInt = array.length (); // ส่งคืนความยาวของอาร์เรย์
แพ็คเกจ com.xiazdong.json; นำเข้า weibo4j.org.json.jsonarray; นำเข้า weibo4j.org.json.jsonobject; การทดสอบระดับสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {jsonarray jsonarray = new Jsonarray ("[{'ชื่อ': 'xiazdong', 'อายุ': 20}, {'ชื่อ': 'xzdong', 'อายุ': 15}]"); สำหรับ (int i = 0; i <jsonArray.length (); i ++) {ชื่อสตริง = jsonArray.getJsonObject (i) .getString ("ชื่อ"); อายุ int = jsonarray.getJsonObject (i) .getInt ("อายุ"); System.out.println ("name ="+ชื่อ); System.out.println ("อายุ ="+อายุ); - 3. อินสแตนซ์รหัส JSONOBJECT และ JSONARRAY
แพ็คเกจ com.xiazdong.json; นำเข้า weibo4j.org.json.jsonarray; นำเข้า weibo4j.org.json.jsonobject; การทดสอบระดับสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {string str = "{'ชื่อ': 'xiazdong', 'อายุ': 20, 'หนังสือ': ['book1', 'book2']"; jsonObject obj = new JsonObject (STR); System.out.println (obj.getjsonarray ("หนังสือ"). getString (0)); -4. ตัวอย่างรหัส JSonstringer
JSonstringer สามารถใช้เพื่อสร้างข้อความรูปแบบ JSON ได้อย่างรวดเร็วและแปลงเป็นสตริงซึ่งสามารถเขียนไปยังไฟล์ได้
JSonstringer เป็นคลาสย่อยของ JsonWriter;
jsonstringer ถูกสร้างขึ้นโดยทั่วไปผ่านวัตถุ (). key (). value (). key (). value (). endobject ();
Object () ระบุว่าวัตถุเริ่มต้นนั่นคือเพิ่ม {;
endobject () ระบุว่าวัตถุสิ้นสุดลงนั่นคือเพิ่ม};
Array () ระบุว่าอาร์เรย์เริ่มต้นนั่นคือการเพิ่ม [;
endarray () ระบุว่าอาร์เรย์สิ้นสุดลงนั่นคือเพิ่มหนึ่ง];
key () หมายถึงการเพิ่มคีย์;
ค่า () หมายถึงการเพิ่มค่า;
แพ็คเกจ com.xiazdong.json; นำเข้า weibo4j.org.json.jsonstringer; คลาสสาธารณะ JSonstringerDemo {โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {JSonstringer stringer = new JSonstringer (); string str = stringer.Object (). คีย์ ("ชื่อ"). ค่า ("xiazdong"). คีย์ ("อายุ") ค่า (20). endobject (). toString (); System.out.println (str); - การเขียนรูปแบบ JSON ที่ซับซ้อน
แพ็คเกจ com.xiazdong.json; นำเข้า Java.io.File; นำเข้า java.io.filereader; นำเข้า weibo4j.org.json.jsonarray; นำเข้า weibo4j.org.json.jsonobject; นำเข้า weibo4j.org.json.jsonstringer; นำเข้า weibo4j.org.json.jsonstringer; นำเข้า weibo4j.org.json.jsontkener; คลาสสาธารณะ JSonstringerDemo {โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {jsonstringer js = new JSonstringer (); jsonObject obj2 = new JsonObject (); jsonObject obj3 = new JsonObject (); jsonObject obj4 = new JsonObject (); obj4.put ("ชื่อ", "book1"). ใส่ ("ราคา", "$ 11"); obj3.put ("หนังสือ", obj4); obj3.put ("ผู้แต่ง", jsonobject ใหม่ (). ใส่ ("ชื่อ", "ผู้เขียน -1")); jsonObject obj5 = new JsonObject (); jsonObject obj6 = new JsonObject (); obj6.put ("ชื่อ", "book2"). ใส่ ("ราคา", "$ 22"); obj5.put ("หนังสือ", obj6); obj5.put ("ผู้แต่ง", jsonobject ใหม่ (). ใส่ ("ชื่อ", "ผู้เขียน -2")); JSONARRAY OBJ7 = new JSONARRAY (); obj7.put (obj3) .put (obj5); obj2.put ("ชื่อ", "หนังสือ"); obj2.put ("การลงนาม", obj7); Js.Object (). คีย์ ("เซสชัน"). ค่า (obj2) .endObject (); System.out.println (js.toString ()); PrintWriter out = ใหม่ printWriter (ใหม่ fileOutputStream (1.txt)); out.println (js.toString ()); - รหัสด้านบนสร้างรูปแบบ JSON ต่อไปนี้:
{"ส่วน": {"title": "หนังสือ", "การลงชื่อ": [{"ผู้แต่ง": {"ชื่อ": "ผู้แต่ง 1"}, "หนังสือ": {"ชื่อ": "book1", "ราคา": "$ 11"}}, {"{" "" "" -5.JSonTokener Code ตัวอย่าง
jSontokener ใช้เพื่ออ่านไฟล์ในรูปแบบ JSON;
jsonObject obj = new JsonObject (ใหม่ jSontokener (java.io.reader)); คุณสามารถอ่าน jsonObject จากไฟล์;
jsonarray obj = new jsonarray (ใหม่ jsonarray (java.io.reader)); คุณสามารถอ่าน jsonarray จากไฟล์;
{'ชื่อ': 'Xiazdong', 'Book': ['Book1', 'Book2']} แพ็คเกจ com.xiazdong.json; นำเข้า Java.io.File; นำเข้า java.io.filereader; นำเข้า weibo4j.org.json.jsonobject; นำเข้า weibo4j.org.json.jsonTokener; คลาสสาธารณะ JSonstringerDemo {โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {jsonObject obj = ใหม่ jsonObject (ใหม่ jsonObject (ใหม่ jSontokener (ใหม่ filereader ("1.txt")))); การอ่านรหัสในรูปแบบ JSON ที่ซับซ้อน:
{"ส่วน": {"title": "หนังสือ", "การลงชื่อ": [{"ผู้แต่ง": {"ชื่อ": "ผู้แต่ง 1"}, "หนังสือ": {"ชื่อ": "book1", "ราคา": "$ 11"}}, {"{" "" "" - แพ็คเกจ com.xiazdong.json; นำเข้า Java.io.File; นำเข้า java.io.filereader; นำเข้า weibo4j.org.json.jsonobject; นำเข้า weibo4j.org.json.jsonTokener; คลาสสาธารณะ JSonstringerDemo {โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {jsonObject obj = ใหม่ jsonObject (ใหม่ jsonObject (ใหม่ jSontokener (ใหม่ filereader (ไฟล์ใหม่ ("1.txt")))); System.out.println (obj.getjsonobject ("ส่วน"). getjsonarray ("การลงนาม"). getjsonobject (0) .getjsonobject ("ผู้แต่ง"). GetString ("Name"));สรุป:
1 ใน java สตริงรูปแบบ JSON เป็นตัวแทนที่ดีที่สุดในคำพูดเดียว;
2. ใช้ JsonObject+JSontokener เพื่ออ่านวัตถุไฟล์รูปแบบ JSON;
3. ใช้ PrintWriter+JSonstringer เพื่อเขียนไฟล์ JSON;
หมายเหตุ: เนื่องจากตอนแรกฉันต้องการพยายามเขียนกับ JsonWriter แต่มันก็ไม่ประสบความสำเร็จ ดังนั้นฉันสามารถใช้ JSonstringer+Printwriter เพื่อเขียนเท่านั้น
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น