ฉันค้นพบ GSON ของ Google เพราะฉันเคยเข้าใจโปรโตคอลมาก่อนและมีความอยากรู้อยากเห็นฉันเริ่มใช้ GSON
หน้าแรกของ GitHub: https://github.com/google/gson
หลังจากการเปรียบเทียบ GSON และห้องสมุด Java JSON อื่น ๆ ที่มีอยู่มีความแตกต่างมากที่สุด GSON จะต้องได้รับการจัดลำดับเพื่อให้ได้คลาสเอนทิตีโดยไม่ต้องใช้คำอธิบายประกอบเพื่อระบุฟิลด์ที่จำเป็นต้องได้รับการจัดลำดับ ในเวลาเดียวกัน GSON สามารถกำหนดค่าฟิลด์ที่ต้องยืดหยุ่นซึ่งจำเป็นต้องได้รับการจัดลำดับโดยใช้คำอธิบายประกอบ
มันง่ายมากในการแปลงรายการหรือแผนที่เป็น JSON:
สตริงสาธารณะ getJSondata (รายการ <?> รายการ) {GSON GSON = new GSON (); สตริง jsonstring = gson.tojson (รายการ); ส่งคืน JSonstring;}เราจะมีตัวอย่างโดยละเอียดด้านล่าง
ตัวอย่าง
การแปลงวัตถุอย่างง่ายและการแปลงรายการด้วยทั่วไป:
ระดับเอนทิตี:
นักศึกษาชั้นเรียนสาธารณะ {ID INT ส่วนตัว; ชื่อสตริงส่วนตัว; วันเกิดส่วนตัววันเกิด; สาธารณะ int getId () {return id; } โมฆะสาธารณะ setId (int id) {this.id = id; } สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } วันที่สาธารณะ getBirthday () {ส่งคืนวันเกิด; } โมฆะสาธารณะ setBirthday (วันเกิดวันที่) {this.birthday = วันเกิด; } @Override สตริงสาธารณะ toString () {return "นักเรียน [วันเกิด =" + วันเกิด + ", id =" + id + ", name =" + name + "]"; -คลาสทดสอบ:
นำเข้า java.util.arraylist; นำเข้า java.util.date; นำเข้า java.util.list; นำเข้า com.google.gson.gson; นำเข้า com.google.gson.reflect.typetoken; ระดับสาธารณะ GNONTEST1 {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {gson gson = new gson (); นักเรียนนักเรียน 1 = นักเรียนใหม่ (); student1.setId (1); student1.setName ("Li Kun"); student1.setBirthday (วันที่ใหม่ ()); - - - - - - - - - System.out.println ("Json to Simple Bean ===" + นักเรียน); // ผลลัพธ์: // ถั่วง่าย ๆ ถึง json === {"id": 1, "ชื่อ": "li kun", "วันเกิด": "มิ.ย. 22, 2012 8:27:52 AM"} // JSON เป็นถั่วง่าย === นักเรียน [วันเกิด = fri 22 มิ.ย. 22:27:52 CST 2012 - - - - นักเรียน 2 = นักเรียนใหม่ (); student2.setId (2); student2.setName ("Cao Guisheng"); student2.setBirthday (วันที่ใหม่ ()); นักเรียนนักเรียน 3 = นักเรียนใหม่ (); student3.setid (3); student3.setName ("Liu Bo"); student3.setBirthday (วันที่ใหม่ ()); รายการ <student> list = new ArrayList <Tudent> (); list.add (นักเรียน 1); list.add (Student2); list.add (student3); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - ผลลัพธ์: // รายการที่มีทั่วไปถูกแปลงเป็น JSON == [{"id": 1, "ชื่อ": "Li Kun", "วันเกิด": "Jun 22, 2012 8:28:52 AM"}, {"ID": 2, "Name": "Cao Guisheng", "วันเกิด": "Jun 22, 2012 8:28:52 Bo "," วันเกิด ":" 22 มิ.ย. 2012 8:28:52 AM "}] // นักเรียน [วันเกิด = วันศุกร์ 22 มิ.ย. 08:28:52 CST 2012, ID = 1, ชื่อ = Li Kun] // นักเรียน [วันเกิด = วันศุกร์ที่ 22 08:28:52 CST 2012 name = liu bo]}}ผลการดำเนินการ:
- - pm "}, {" id ": 2," ชื่อ ":" Cao Guisheng "," วันเกิด ":" Jun 22, 2012 9:10:31 PM "}, {" id ": 3," ชื่อ ":" Liu Bo "," วันเกิด ": 22 21:10:31 CST 2012, ID = 2, ชื่อ = Cao Guisheng] นักเรียน [วันเกิด = วันศุกร์ 22 มิ.ย. 21:10:31 CST 2012, ID = 3, ชื่อ = Liu Bo]