لقد اكتشفت GODE GSON من Google ، لأنني كنت قد فهمت بعض البروتوكولبوف من قبل وكان لدي بعض الفضول ، بدأت في استخدام GSON.
GitHub Homepage: https://github.com/google/gson
بعد المقارنة ، تتمتع GSON ومكتبات فئة Java JSON الأخرى بأكبر الاختلافات. يحتاج GSON إلى التسلسل لتحقيق فصول الكيانات دون استخدام التعليقات التوضيحية لتحديد الحقول التي تحتاج إلى التسلسل. في الوقت نفسه ، يمكن لـ GSON تكوين الحقول التي تحتاج إلى تسلسلها بمرونة باستخدام التعليقات التوضيحية.
من السهل جدًا تحويل القائمة أو الخريطة إلى JSON:
السلسلة العامة getjsondata (قائمة <؟> قائمة) {gson gson = new gson () ؛ String jsonstring = gson.tojson (list) ؛ إرجاع jsonstring ؛}سيكون لدينا أمثلة مفصلة أدناه.
مثال
تحويل الكائنات البسيطة وتحويل القائمة مع الأدوية الجينية:
فئة الكيان:
طالب الطبقة العامة {private int id ؛ اسم السلسلة الخاصة ؛ عيد ميلاد التاريخ الخاص public int getId () {return id ؛ } public void setId (int id) {this.id = id ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } التاريخ العام getBirthday () {return Birthday ؛ } public void setbirthday (Date Birthday) {this.birthday = عيد ميلاد ؛ } Override public string toString () {return "student [birthday =" + birthday + "، id =" + id + "، name =" + name + "]" ؛ }}فئة الاختبار:
استيراد java.util.arraylist ؛ استيراد java.util.date ؛ استيراد java.util.list ؛ استيراد com.google.gson.gson ؛ استيراد com.google.gson.reflect.tepetoken ؛ الفئة العامة gsontest1 {public static void main (string [] args) {gson gson = new gson () ؛ الطالب 1 = طالب جديد () ؛ student1.setid (1) ؛ student1.setName ("Li Kun") ؛ student1.setbirthday (Date ()) ؛ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ) ) ) System.out.println ("json to simple bean ===" + student) ؛ // النتيجة: // simple bean to json ==== {"id": 1 ، "name": "li kun" ، "عيد ميلاد": "22 يونيو ، 2012 8:27:52 AM"} // json to simple bean === student [virliday = fri Jun 22 08:27:52 CST 2012 ، id = 1 ، // name = li kun] //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// الطالب 2 = طالب جديد () ؛ student2.setid (2) ؛ student2.setName ("Cao Guisheng") ؛ student2.SetBirthday (Date ()) ؛ الطالب 3 = طالب جديد () ؛ student3.setid (3) ؛ student3.setName ("liu bo") ؛ student3.setBirthday (Date ()) ؛ قائمة <Student> list = new ArrayList <Tudent> () ؛ list.add (student1) ؛ list.add (student2) ؛ list.add (student3) ؛ System.out.println ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- النتيجة: // القائمة مع generics يتم تحويلها إلى json == [{"id": 1 ، "name": "li kun" ، "عيد ميلاد": "22 يونيو ، 2012 8:28:52 AM"} ، {"id": 2 ، "name": "Cao Guisheng" ، "Birthday": bo "،" عيد ميلاد ":" 22 يونيو 2012 ، 2012:28:52 am "}] // الطالب [عيد ميلاد = الجمعة 22 يونيو 08:28:52 الاسم = liu bo]}}نتائج التنفيذ:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- PM "} ، {" id ": 2 ،" name ":" Cao Guisheng "،" Birthday ":" Jun 22 ، 2012 9:10:31 PM "} ، {" id ": 3 ،" name ": 22 21:10:31 CST 2012 ، ID = 2 ، name = Cao Guisheng] الطالب [عيد ميلاد = Fri Jun 22 21:10:31 CST 2012 ، ID = 3 ، name = liu bo]