JSON (Notation Object JavaScript) เป็นรูปแบบการแลกเปลี่ยนข้อมูลที่มีน้ำหนักเบาที่ใช้รูปแบบข้อความที่ไม่ขึ้นกับภาษาอย่างสมบูรณ์และเป็นรูปแบบการแลกเปลี่ยนข้อมูลในอุดมคติ ในขณะเดียวกัน JSON เป็นรูปแบบดั้งเดิมของ JavaScript ซึ่งหมายความว่าไม่จำเป็นต้องใช้ API พิเศษหรือชุดเครื่องมือในการประมวลผลข้อมูล JSON ใน JavaScript
เครื่องมือการก่อสร้างและการแยกวิเคราะห์ JSON จำนวนมากภายใต้ Java ได้รับการเผยแพร่ใน www.json.org ในหมู่พวกเขา org.json และ json-lib นั้นค่อนข้างง่าย ทั้งสองมีการใช้งานคล้ายกัน แต่ก็ยังมีความแตกต่างอยู่บ้าง ต่อไปเราจะแนะนำตัวอย่างของวิธีการใช้ org.json เพื่อสร้างและแยกวิเคราะห์ข้อมูล JSON
สำหรับคำอธิบายโดยละเอียดเกี่ยวกับวิธีการสร้างและแยกวิเคราะห์ข้อมูล JSON โดยใช้ JSON-LIB โปรดดูโพสต์บล็อกก่อนหน้าของฉัน: สองวิธีในการสร้างและแยกวิเคราะห์ข้อมูล JSON โดยใช้ Java (รายละเอียดคำอธิบาย 1)
1. บทนำ
แพ็คเกจ org.json เป็นแพ็คเกจอื่นที่ใช้ในการแปลงถั่วคอลเลกชันแผนที่จาวาอาร์เรย์และ XML และ JSON ส่วนใหญ่จะใช้ในการแยกวิเคราะห์ข้อมูล JSON มีคำอธิบายโดยละเอียดเกี่ยวกับเว็บไซต์อย่างเป็นทางการ http://www.json.org/ หากคุณสนใจคุณสามารถศึกษาได้
2. ดาวน์โหลดแพ็คเกจการพึ่งพา JAR
คุณสามารถดาวน์โหลดได้ที่นี่
3. บทนำสู่วิธีการพื้นฐาน
เนื่องจาก org.json ไม่สามารถแปลงเป็นถั่วได้โดยตรงจึงต้องถูกแปลงผ่านแผนที่ เพื่อความสะดวกฉันได้เขียนคลาสเครื่องมือ JsonHelper ที่นี่ซึ่งใช้ในการแปลง JSON ด้วยแผนที่และถั่ว
แพ็คเกจ com.json; นำเข้า java.lang.reflect.method; นำเข้า java.text.parseException; นำเข้า java.util.hashmap; นำเข้า java.util.iterator; นำเข้า java.util.map; นำเข้า org.json.jsonexception; แปลงแผนที่เป็น javabean* 3: แปลง JsonObject เป็นแผนที่, javabean** @author Alexia*/คลาสสาธารณะ Jsonhelper {/*** แปลง javabean เป็นแผนที่** @param javabean* javabean* @return map object*/แผนที่สาธารณะ javabean.getClass (). getDeclaredMethods (); สำหรับ (วิธีการ: วิธี: วิธี) {ลอง {ถ้า (method.getName (). startswith ("get")) {ฟิลด์สตริง = method.getName () field = field.substring field.substring (1); ค่าวัตถุ = method.invoke (javabean, (object []) null); result.put (ฟิลด์, null == ค่า? "": value.toString ());}} catch (ยกเว้น e) {e.printstacktrace (); Object* @throws JSonexception*/แผนที่สาธารณะคงที่ tomap (สตริง jsonstring) พ่น jSonexception {jsonObject jsonObject = new JsonObject (jsonstring); แผนที่ผลลัพธ์ = new hashmap () iterator iterator = jsonobject.keys () iterator.next (); value = jsonObject.getString (key); result.put (key, value);} ผลตอบแทนผลลัพธ์;}/*** แปลง javabean เป็น jsonobject (ถ่ายโอนผ่านแผนที่)** @param Bean* javabean* @return json json แปลงแผนที่เป็น javabean** @param javabean* javabean* @param data* ข้อมูลแผนที่*/วัตถุคงที่สาธารณะ tojavabean (วัตถุ javabean, ข้อมูลแผนที่) {วิธีการ [] วิธีการ = javabean.getClass () getDeclaredMethods (); = method.getName (); field = field.substring (field.indexof ("set") + 3); field = field.toLowerCase (). charat (0) + field.substring (1); method.invoke (javabean, วัตถุใหม่ [] {data.get (ฟิลด์)}) javabean** @param Bean* javabean* @return json Object* @throws Parseexception* JSON การแยกวิเคราะห์ข้อยกเว้น* @throws JSonexception*/โมฆะสาธารณะคงที่ tojavabean tomap (jsonobject.toString ()); tojavabean (javabean, แผนที่);}} 4. ตัวอย่างการสาธิต
นี่คือวิธีการทั่วไปบางอย่างในการทดสอบ
แพ็คเกจ com.json; นำเข้า java.text.parseException; นำเข้า java.util.arraylist; นำเข้า java.util.hashmap; นำเข้า java.util.list; นำเข้า java.util.map; นำเข้า org.json.jsonarray; นำเข้า ข้อมูล JSON** @author Alexia* @date 2013/5/23**/คลาสสาธารณะ orgjSontest {/*** สร้างข้อมูล JSON** @return* @throws JSonexception*/สตริงคงที่สาธารณะ buildjson () พ่น jSonexception {// json data data แผนที่ <สตริง, สตริง> map1 = ใหม่ hashmap <สตริง, สตริง> (); map1.put ("ชื่อ", "alexia"); map1.put ("เพศ", "หญิง"); map1.put ("อายุ", "23"); แผนที่ <สตริง "ชาย"); map2.put ("อายุ", "24"); รายการ <ap> list = new ArrayList <AP> (); list.add (MAP1); list.add (MAP2); พนักงานพนักงาน = พนักงานใหม่ (); พนักงาน. setName ("wjl"); ใหม่ jsonArray (); ja.put (MAP1); System.out.println ("รูปแบบข้อมูลวัตถุ JSONARRAY:"); System.out.println (ja.toString ()); // แปลง JABABEAN เป็นข้อมูล JSON วัตถุพนักงาน: "); System.out.println (jo1.toString ()); // สร้างข้อมูล JSON รวมถึงแผนที่และข้อมูล JSON ที่มีวัตถุพนักงาน Jo.put (" แผนที่ ", JA); Jo.put (" พนักงาน ", JO1.ToString ()); "); System.out.println (jo.toString ()); return jo.toString ();}/*** parse json data** @param jsonstring* json data String* @throws JSonexception* @throws parseexception*/parsejson jsonObject (jsonstring); jsonarray ja = jo.getjsonarray ("แผนที่"); system.out.println ("/n วิเคราะห์ข้อมูล JSON ลงในแผนที่:"); system.out.println ("ชื่อ:" + ja.getjsonobject (0) อายุ: " + ja.getjsonObject (0) .getInt (" อายุ ")); String JSONST = Jo.getString (" พนักงาน "); พนักงาน EMP = พนักงานใหม่ (); JsonHelper.tojavabean emp.getName () + "เพศ:" + emp.getsex () + "อายุ:" + emp.getage ());}/*** @param args* @throws jSonexception* @throws parseexception*/public Static Main (String [] args) stubparsejson (buildjson ());}} ผลการดำเนินการมีดังนี้
5. เปรียบเทียบกับ JSON-LIB
การใช้ JSON-LIB และ ORG.JSON เกือบจะเหมือนกัน ฉันได้สรุปความแตกต่างสองประการ:
1. org.json เบากว่า JSON-LIB มาก อดีตไม่ได้พึ่งพาแพ็คเกจขวดอื่น ๆ ในขณะที่หลังขึ้นอยู่กับ Lang, การบันทึก, beanutils, คอลเลกชันและส่วนประกอบอื่น ๆ ของ Ezmorph และ Commons
2. JSON-LIB นั้นสะดวกกว่า org.json เมื่อสร้างถั่วและการแยกวิเคราะห์ถั่ว JSON-LIB สามารถแปลงด้วยถั่วโดยตรงในขณะที่ org.json ไม่สามารถแปลงด้วยถั่วโดยตรงและต้องการแผนที่เป็นการขนส่ง หากคุณแปลงถั่วเป็นข้อมูล JSON คุณต้องแปลงถั่วเป็นแผนที่ก่อนจากนั้นแปลงแผนที่เป็น JSON ซึ่งเป็นปัญหามากขึ้น
ในระยะสั้นประโยคเดียวกันยังคงเป็นสิ่งที่ดีที่สุดสำหรับคุณ ทุกคนควรเลือกวิธีที่จะใช้ในการวิเคราะห์ตามต้องการ ในที่สุดฉันจะแนะนำเครื่องมือสองอย่างในการวิเคราะห์ข้อมูล JSON: หนึ่งคือเครื่องมือออนไลน์แก้ไข JSON (http://braincast.nl/samples/jsoneditor/); อีกอย่างคือ Eclipse Plugin Json Tree Analyzer ซึ่งทั้งสองอย่างนี้มีประโยชน์มากและแนะนำให้ทุกคนใช้!
ข้างต้นเป็นความรู้ที่เกี่ยวข้องของทั้งสองวิธี (คำอธิบายโดยละเอียด) ที่ใช้โดยบรรณาธิการเพื่อแนะนำให้คุณทราบเกี่ยวกับ Java เพื่อสร้างและแยกวิเคราะห์ข้อมูล JSON ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ!