في تطوير موقع الويب ، غالبًا ما يتم مواجهة عرض البيانات المتتالية ، مثل واجهة اختيار المقاطعة والبلدية والمقاطعة التي تظهر عند اختيار المدينة. اعتاد العديد من المنتجين في الواجهة الأمامية على الحصول على بيانات مقاطعة وبلدية ومقاطعة من JSON بدلاً من قواعد البيانات. ثم ، إذا تم اختيار مدينة في مقاطعة ومدينة ومقاطعة ، فيجب تخزين مدونة المدينة المحددة في قاعدة البيانات. لذلك ، هناك حاجة إلى وظيفة لاستيراد جميع بيانات JSON (عادة ما يتم تخزينها في نصوص JavaScript) في قاعدة البيانات.
يتميز JSON بدعم الهياكل الهرمية ودعم تمثيل الصفيف. يقدم المثال التالي كيفية حفظ بيانات JSON الإقليمية والبلدية والمقاطعة في قاعدة بيانات. مبدأ التنفيذ بسيط للغاية. إنه لاستخدام API Java Toolkit API من JSON لتحويل صفيف كائن JSON الهرمي إلى صفيف كائن Java من خلال العودية ، ثم حفظه إلى قاعدة البيانات.
خطوات التنفيذ هي:
(أ) حدد أولاً فئة كيان jsonitem:
package org.openjweb.core.entity ؛ jsonitem public {private string sub_id ؛ private string sub_name ؛ private jsoniTem [] العناصر ؛ public jsonitem [] getitems () setSub_id (String sub_id) {this.sub_id = sub_id ؛} السلسلة العامة getSub_Name () {return sub_name ؛} public void setsub_name (String sub_name)(2) تحديد فئة الأدوات ، وقراءة ملف بيانات JSON في فئة الأدوات ، وإجراء مكالمات متكررة:
السلسلة الثابتة العامة ImportJson (سلسلة FullFilename ، سلسلة jsontype ، تشفير السلسلة ، httpservletrequest طلب) يلقي استثناء {// json تحويل إلى فئة الكيان: http://www.cnblogs.com "" ؛ حاول {jsondata = fileutil.getTextFileContent (fullfilename ، الترميز) ؛} catch (استثناء ex) {sreturn = "reading json file failt! // قم بإزالة العناصر الفارغة extring extRing parentId = jsondata.substring (jsondata.indexof ("/" id/":")+5) ؛ parentId = parentId.SubString (0 ، parentid.indexof ("،"). jSondata.SubString (jsondata.indexof ("/" name/":")+7) ؛ parentname = parentname.substring (0 ، parentname.indexof ("،")). trim () ؛ parentname = parentname.replace (/"" ، "" "") ؛ jsondata.substring (jsondata.indexof ("/" العناصر/":")+8 ، jsondata.lastindexof ("}")) ؛ rootdata = jsondata.substring (jsondata.indexof ("[")+1 ، jsondata.lastindaxof ("]") يتم استبدالها بـ sub_id و subname لتتناسب مع سمات الفصل لـ jsonitem // من المريح التعامل بشكل موحد بعد الاستبدال rootdata = rootdata.replace ("city_id" ، "sub_id") ؛ rootdata = rootdata.replace ("sub_city" ، "sub_name") ؛ rootdata = rootdata.replace ("sub_txt" ، "sub_name") ؛ rootdata = rootdata.replace ("sub_industry" ، "sub_name") ؛ rootdata = rootdata "sub_name") ؛ rootdata = rootdata.replace ("sub_profession" ، "sub_name") ؛ rootdata = rootdata.replace ("phink_id" ، "sub_id") ؛ rootdata = rootdata.replace ("charge ،" sub_name ") ؛ "]" ؛ جرب {fileutil.str2file (rootdata ، "d: /jsondata.txt" ، "utf-8") ؛ // حفظ إلى القرص للتحقق مما إذا كان تحويل السلسلة صحيحًا} catch (استثناء ex) {} jsonarray jsonarray = jsonarray.fromobjouse (rootdata) ؛ (jsonitem []) jsonarray.toarray (jsonarray ، jsonitem.class) ؛ SaveJsonent (jsontype ، parentid ، parentname ، "-1" ، New Long (1)) jsonname ، String ParentId ، Long LevelId) يلقي استثناء {logger.info (jsontype+"/"+jsonid+"/"+jsonname+"/"+parentid+"/"+string.valueof (levelid)) ؛ commjsondata ent = new commjsondata () ؛ ent.setjsontype (jsontype) ؛ ent.setjsoncode (jsonid) ؛ ent.setjsonname (jsonname) ؛ ent.setRowid (stringutil.getuuid ()) ؛ (idbsupportService) servicelocator.getBean ("idbsupportService3") ؛ service.saveorupdate (ent) ؛} static string private dealjson (jsonitem [] i = 0 ؛ i <jsonitem.length ؛ i ++) {jsonitem ent = jsonitem [i] ؛ // system.out.println (ent.getsub_id ()) ؛ // system.out.println (ent.getsub_name ()) ؛ حاول {savejsonent (jsontype ، ent.getsub_id () ، ent.getsub_name () ، المستوى+1) ؛ ex) {ex.printStackTrace () ؛} if (ent.getItems ()! = null) {// system.out.println ("number of subitems: "+ent.getitems ()نموذج البيانات (جزء):
{"name": "National" ، "id": "00000000000" ، "Description": "Chongdeyi City Data" ، "Modified": "August 2012" ، "Copyright": [{"sub_city": "Dongcheng District" ، "sub_id": "2001001000"} ، {"sub_city": District "،" sub_id ":" 2001007000 "} ، {" sub_city ":" shijingshan district "،" sub_id ":" 2001008000 "} ، {" District "،" sub_id ":" 2001010000 "} ، {" sub_city ":" Fangshan District "،" sub_id ":" 2001011000 "} ، {" s ub_city ": الحي "،" sub_id ":" 2001013000 "} ، {" sub_city ":" changping district "،" sub_id ":" 2001014000 "} ، {" sub_city ": District "،" sub_id ":" 2001016000 "} ، {" sub_city ":" pinggu district "،" sub_id ":" 2001017000 "} ، {" sub_city ": مقاطعة "،" sub_id ":" 2001019000 "}]} ، {" City ":" Tianjin City "،" City_ID ":ما ورد أعلاه هو تنفيذ معالجة البيانات المعقدة JSON ، والتي يتم تقديمها لك من قبل المحرر ، ويتم تحويل بيانات بنية شجرة JSON إلى كائنات JAVA وتخزينها في قاعدة البيانات.