يحلل هذا المقال ثلاث طرق لتحليل JSON بناءً على Java. شاركه للرجوع إليه ، على النحو التالي:
1. ما هو JSON؟
JSON هي بنية بيانات تحل محل XML. بالمقارنة مع XML ، فهو أصغر ولكن لديه قدرات وصف جيد. بسبب صغرها ، تنقل الشبكة البيانات لتقليل المزيد من حركة المرور وتسريع.
JSON هي سلسلة من الأوتار ، ولكن يتم تمييز العناصر برموز محددة.
{} تمثل الأقواس المزدوجة الكائنات
[] تمثل الأقواس المصفوفة
"" في عروض الأسعار المزدوجة هي سمات أو قيم
: يشير القولون إلى أن هذا الأخير هو قيمة الأولى (يمكن أن تكون هذه القيمة سلسلة أو رقمًا أو صفيفًا أو كائنًا آخر)
لذا ، يمكن فهم {"الاسم": "Michael"} ككائن يحتوي على اسم باسم Michael
و [{"name": "Michael"} ، {"name": "Jerry"}] يعني صفيف يحتوي على كائنين
بالطبع ، يمكنك أيضًا استخدام {"name": ["Michael" ، "Jerry"]} لتبسيط ما سبق ، وهو كائن به مجموعة من الأسماء.
2. تحليل JSON التقليدي: تحليل JSON
1. إنشاء سلسلة JSON
السلسلة الثابتة العامة createjsonstring (مفتاح السلسلة ، قيمة الكائن) {jsonobject jsonobject = new jsonobject () ؛ jsonobject.put (المفتاح ، القيمة) ؛ إرجاع jsonobject.tostring () ؛}2. تحليل سلاسل JSON
وهي مقسمة إلى المواقف الثلاثة التالية: جافابان ، صفيف قائمة ، ومجموعة قائمة مع خريطة متداخلة:
استيراد java.util.arraylist ؛ استيراد java.util.hashmap ؛ استيراد java.util.iterator JSontools {public static person getPerson (مفتاح السلسلة ، سلسلة jsonstring) {person person = new person () ؛ حاول {jsonobject jsonobject = new jsonobject (jsonstring) ؛ jsonobject personObject = jsonobject.getJsonObject ("person") ؛ person.setId (personObject.getInt ("id")) ؛ person.setName (personObject.getString ("name")) ؛ person.setAddress (personObject.getString ("العنوان")) ؛ } catch (استثناء e) {// todo: التعامل مع استثناء} إرجاع الشخص ؛ } القائمة الثابتة العامة getPersons (مفتاح السلسلة ، سلسلة jsonstring) {list = new ArrayList () ؛ حاول {jsonobject jsonobject = new jsonobject (jsonstring) ؛ // إرجاع مجموعة JSON JSONARRAY JSONARRAY = JSONOBJECT.GETJSONARRAY (KEY) ؛ لـ (int i = 0 ؛ i <jsonarray.length () ؛ i ++) {jsonobject jsonobject2 = jsonarray.getjsonobject (i) ؛ شخص الشخص = شخص جديد () ؛ person.setId (jsonobject2.getint ("id")) ؛ person.setName (jsonobject2.getString ("name")) ؛ person.setaddress (jsonobject2.getString ("العنوان")) ؛ list.add (شخص) ؛ }} catch (استثناء e) {// todo: Handled Secrept} قائمة الإرجاع ؛ } القائمة الثابتة العامة getList (مفتاح السلسلة ، سلسلة jsonstring) {list = new ArrayList () ؛ حاول {jsonobject jsonobject = new jsonobject (jsonstring) ؛ jsonarray jsonarray = jsonobject.getjsonarray (key) ؛ لـ (int i = 0 ؛ i <jsonarray.length () ؛ i ++) {string msg = jsonarray.getString (i) ؛ list.add (msg) ؛ }} catch (استثناء e) {// todo: Handled Secrept} قائمة الإرجاع ؛ } قائمة ثابتة عامة> listkeymaps (مفتاح السلسلة ، السلسلة jsonstring) {list> list = new ArrayList> () ؛ حاول {jsonobject jsonobject = new jsonobject (jsonstring) ؛ jsonarray jsonarray = jsonobject.getjsonarray (key) ؛ لـ (int i = 0 ؛ i <jsonarray.length () ؛ i ++) {jsonobject jsonobject2 = jsonarray.getjsonobject (i) ؛ خريطة الخريطة = new hashmap () ؛ iterator iterator = jsonobject2.keys () ؛ بينما (iterator.hasnext ()) {string json_key = iterator.next () ؛ Object json_value = jsonobject2.get (json_key) ؛ if (json_value == null) {json_value = "" ؛ } map.put (json_key ، json_value) ؛ } list.add (map) ؛ }} catch (استثناء e) {// todo: Handled Secrept} قائمة الإرجاع ؛ }}3. تحليل GSON من JSON
1. إنشاء سلسلة JSON
استيراد com.google.gson.gson ؛ الفئة العامة jsonutils {السلسلة الثابتة العامة createJsonObject (Object obj) {gson gson = new gson () ؛ String str = gson.tojson (obj) ؛ إرجاع شارع }}2. تحليل JSON
استيراد java.util.arraylist ؛ استيراد java.util.list ؛ استيراد java.util.map ؛ استيراد com.google.gson.gson ؛ استيراد com.google.gson.reflect.typoken ؛؛ الفئة العامة gsontools * @return */ public static t getPerson (string jsonstring ، class cls) {t t = null ؛ حاول {gson gson = new gson () ؛ t = gson.fromson (jsonstring ، cls) ؛ } catch (استثناء e) {// todo: التعامل مع الاستثناء} return t ؛ } / ** * استخدم GSON to Parse List * * param * param jsonstring * param cls * @return * / public static list getPersons (string jsonstring ، clas cls) {list = new ArrayList () ؛ حاول {gson gson = new gson () ؛ list = gson.fromjson (jsonstring ، typetoken جديد> () {} .gettype ()) ؛ } catch (استثناء e) {} قائمة الإرجاع ؛ } / ** * param jsonstring * @return * / public static list getList (string jsonstring) {list = new ArrayList () ؛ حاول {gson gson = new gson () ؛ list = gson.fromjson (jsonstring ، typetoken جديد> () {} .gettype ()) ؛ } catch (استثناء e) {// todo: قائمة الاستثناء} الإرجاع ؛ } قائمة ثابتة عامة> listkeymaps (سلسلة jsonstring) {list> list = new ArrayList> () ؛ حاول {gson gson = new gson () ؛ list = gson.fromjson (jsonstring ، typetoken جديد >> () {} .gettype ()) ؛ } catch (استثناء e) {// todo: قائمة الاستثناء} الإرجاع ؛ }}4. fastjson تحليل
استيراد java.util.arraylist ؛ استيراد java.util.list ؛ استيراد java.util.map ؛ استيراد com.alibaba.fastjson.json ؛ استيراد com.alibaba.fastjson.typereference ؛ الطبقة العامة jsontool حاول {t = json.parseObject (jsonstring ، cls) ؛ } catch (استثناء e) {// todo: التعامل مع الاستثناء} return t ؛ } قائمة ثابتة عامة getPersonList (سلسلة jsonstring ، cls cls) {list = new ArrayList () ؛ حاول {list = json.parsearray (jsonstring ، cls) ؛ } catch (استثناء e) {// todo: قائمة الاستثناء} الإرجاع ؛ } قائمة ثابتة عامة> getPersonListMap1 (سلسلة jsonstring) {list> list = new ArrayList> () ؛ حاول {list = json.parseObject (jsonstring ، new typereference >> () {} .gettype ()) ؛ } catch (استثناء e) {// todo: قائمة الاستثناء} الإرجاع ؛ }}تلخيص:
بالنسبة للأجهزة المحمولة ، وخاصة في حالة سيء بيئة الشبكة وقيود حركة المرور ، فإن JSON ستوفر حركة المرور ولديها كفاءة أعلى في الإرسال مقارنة بنقل بيانات تنسيق XML. من بين هذه الأساليب التحليلية الثلاثة ، يعد Fastjson الأكثر كفاءة ويوصى به.
ملاحظة: فيما يتعلق بتشغيل JSON ، إليك بعض أدوات JSON عبر الإنترنت لرجوعك: التحقق من رمز JSON عبر الإنترنت أدوات التفتيش والتفتيش والتجميل والتنسيق: أداة تنسيق JSON Online: أداة تحويل XML/JSON عبر الإنترنت: رمز JSON عبر الإنترنت تنسيق/تجميل/ضغط/تحرير/تحويل أدوات: أدوات ضغط JSON عبر الإنترنت/الهرب: C نمط اللغة/HTML/CSS/JSON رمز التنسيق والتجميل أدوات:
http://tools.vevb.com/code/json
http://tools.vevb.com/code/jsonformat
http://tools.vevb.com/code/xmljson
http://tools.vevb.com/code/jsoncodeformat
http://tools.vevb.com/code/json_yasuo_trans
http://tools.vevb.com/code/ccode_html_css_json
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.