1. ببساطة ضع أزواج القيمة الرئيسية يدويًا في JSONOBJECT ، ثم وضعها في جسم JSONARRAY
قائمة <article> al = articlemng.find (f) ؛ system.out.println (al.size ()) ؛ httpservletresponse hsr = servleTactionContext.getResponse () ؛ if (null == al) {return ؛ } لـ (المادة A: al) {system.out.println (A.GetId ()+A.GetDescription ()+A.GetTitle ()) ؛ } jsonarray json = new jsonarray () ؛ لـ (المادة أ: al) {jsonobject jo = new jsonobject () ؛ Jo.put ("id" ، A.GetId ()) ؛ Jo.put ("title" ، A.GetTitle ()) ؛ Jo.put ("desc" ، A.GetDescription ()) ؛ json.put (Jo) ؛ } try {system.out.println (json.toString ()) ؛ HSR.SetcharActerencoding ("UTF-8") ؛ hsr.getWriter (). الكتابة (json.toString ()) ؛ } catch (ioException e) {E.PrintStackTrace () ؛ }الرمز أعلاه jsonarray هو حزمة org.json.jsonarray التي تم تقديمها
الطريقة الثابتة لـ JSONARRAY تحت Net.sf.json Package: FromObject (List) هذه هي الطريقة لتحويل JSON بسرعة على الإنترنت ، ولكن بالنسبة لعمليات التتابع السباتية المرتبطة بها ، ستقوم هذه الطريقة بالإبلاغ عن خطأ. إذا تمت إزالة التكوين المتتالي في ملف التعيين ، فسيكون ذلك جيدًا.
بالإضافة إلى ذلك ، فإن متطلبات القائمة هي أن العناصر الموجودة فيه هي سلاسل أو كائنات ، وإلا فلن تعرف JSON البيانات التي تريدها.
<العديد إلى واحد name = "cmsent" column = "comment_tid" not-null = "false" cascade = "delete">
ومع ذلك ، لا يزال يتعين على عمليات التتابع موجودة بعد كل شيء ، وإلا فإن البيانات ستكون زائدة وزائدة عن الحاجة في المستقبل.
الحل هو: jsonarray submsgs = jsonarray.fromObject (كائن ، config) ؛
jsonconfig config = new JsonConfig () ؛ config.setjsonpropertyfilter (new propertyfilter () {public boolean application (Object arg0 ، string arg1 ، object arg2) {if (arg1.equals ("article") || arg1.equals ("fans")) {return true ؛} else {return false ؛}}}) ؛ الوصف: يوفر وظيفة تصفية. إذا تمت مواجهة كائن مرتبط ، فسيتم تصفيةه تلقائيًا ولن يقوم بتنفيذ الكائن المرتبط به. هنا أنشر رمز تكوين رسم خرائط العلاقة في السبات للمساعدة في فهم:
<!-قم بتكوين العلاقة بين الموضوعات والمجموعات-> <to-to one name = "article" column = "article_id" /> <!-تكوين العلاقة بين منشورات الموضوع والمنشورات التي يتم الرد عليها-> <set name = "submessages" table = "sub_message" inverse = "true" cascade = "lazy =" false </st>
تلخيص:
1. حيث التكوين اختياري. عند حدوث الموقف أعلاه ، يمكنك تكوين معلمات التكوين. إذا لم يكن هناك مثل هذا الشرط أعلاه ، فيمكنك استخدام طريقة FromObject (OBJ) مباشرة. ما يحوله هو بيانات تنسيق كائن JSON القياسية ، على النحو التالي:
{["attr" ، "content" ، ...} ، ...]}
2. يستخدم هذا خصيصًا لتحليل pojo القياسي أو كائن الخريطة. وغني عن القول ، إن تنسيق كائن pojo هو ، شكل الخريطة مثل هذا {"str" ، "str"}.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
بالنسبة إلى Jsonarray و JSON ، اعتدت أن أتقيأ من قبل! ! !
الفول
package com.nubb.bean ؛ import java.io.serializable ؛ شخص الطبقة العامة ينفذ قابلة للتسلسل {private static final long serialversionuid = 1l ؛ اسم السلسلة الخاصة ؛ عصر INT الخاص ؛ عنوان السلسلة الخاص ؛ السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } public int getage () {return Age ؛ } public void setage (int age) {this.age = age ؛ } السلسلة العامة getAddress () {return address ؛ } public void setAddress (عنوان السلسلة) {this.address = العنوان ؛ }} jsonutil
package com.nubb.test ؛ import java.io.ioException ؛ import java.nio.file.files ؛ import java.nio.file.path ؛ import java.nio.file.standardOpenOption ؛ import java.util.arraylist ؛ class jsonserializer {private static final string default_charset_name = "utf-8" ؛ ثابت عام <T> سلسلة Serialize (t object) {return json.tojsonstring (object) ؛ } static public <T> t deserialize (سلسلة سلسلة ، فئة <T> clz) {return json.parseObject (string ، clz) ؛ } static static <T> t load (مسار المسار ، فئة <T> CLZ) يلقي ioException {return deserialize (سلسلة جديدة (files.readallbytes (path) ، default_charset_name) ، clz) ؛ } static public <T> void save (path path ، t object) يلقي ioException {if (files.notexists (path.getParent ())) {files.createdIrectories (path.getParent ()) ؛ } files.write (path ، serialize (object) .getByTes (default_charset_name) ، standardopenoption.write ، standardopenoption.create ، standardopenoption.truncate_existing) ؛ } public static void main (string [] args) {person 1 = new person () ؛ person1.setAddress ("العنوان") ؛ person1.setage (11) ؛ person1.setName ("Amao") ؛ شخص 2 = شخص جديد () ؛ person2.setaddress ("العنوان") ؛ person2.setage (11) ؛ person2.setName ("Amao") ؛ قائمة <Person> lp = new ArrayList <Person> () ؛ lp.add (person1) ؛ lp.add (person2) ؛ System.out.println (Serialize (LP)) ؛ }}الإخراج:
نسخة الكود كما يلي:
[{"العنوان": "العنوان" ، "العمر": 11 ، "الاسم": "Amao"} ، {"العنوان": "العنوان" ، "العمر": 11 ، "الاسم": "Amao"}]
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.