برنامج جاكسون الأول
قبل إدخال تفاصيل تعلم مكتبة جاكسون ، دعنا نلقي نظرة على ميزات تشغيل التطبيق. في هذا المثال ، نقوم بإنشاء فصل دراسي. سيتم إنشاء سلسلة JSON وإلحاقها بكائن الطالب ، ثم تسلسلها إلى سلسلة JSON.
قم بإنشاء ملف فئة Java باسم JackSontester C:/> Jackson_Workspace.
ملف: jacksontester.java
استيراد java.io.ioException ؛ استيراد org.codehaus.jackson.jsonparsexception ؛ استيراد org.codehaus.jackson.map.jsonmappingexception ؛ import org.codehaus.jackson.map.objectmapper ؛ استيراد org.codehaus.jackson.serialization ؛ args []) {objectMapper mapper = new ObjectMapper () ؛ String jsonstring = "{/" name/":/" mahesh/"،/" Age/": 21}" ؛ // map json to student try {student {mapper.readvalue (jsonstring ، student.class) ؛ System.out.println (الطالب) ؛ mapper.enable (serializationConfig.feature.indent_output) ؛ jsonstring = mapper.writevalueasString (student) ؛ system.out.println (jsonstring) ؛ } catch (jsonparseexception e) {e.printStackTrace () ؛ } catch (jsonmappexception e) {E.PrintStackTrace () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ }}} فئة طالب {اسم السلسلة الخاصة ؛ عصر INT الخاص ؛ الطالب العام () {} السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } public int getage () {return Age ؛ } public void setage (int age) {this.age = age ؛ } السلسلة العامة toString () {return "student [name:"+ name+ "، Age:"+ Age+ "]" ؛ }}نتائج التحقق
استخدم Javac لتجميع الفصل التالي:
نسخة الكود كما يلي:
C:/Jackson_Workspace> Javac Jacksontester.java
الآن قم بتشغيل JackSontester لترى النتيجة:
نسخة الكود كما يلي:
C:/Jackson_Workspace> Java Jacksontester
تحقق من الإخراج
الطالب [الاسم: ماهيش ، العمر: 21] {"الاسم": "ماهيش" ، "العمر": 21}الخطوات - فيما يلي الخطوات المهمة التي يجب مراعاتها هنا.
الخطوة 1: إنشاء كائن ObjectMapper.
إنشاء كائن ObjectMapper. إنه كائن قابل لإعادة الاستخدام. /
نسخة الكود كما يلي:
ObjectMapper mapper = new ObjectMapper () ؛
الخطوة 2: Deserialize JSON إلى الكائن.
استخدم طريقة ReadValue () للحصول على كائن JSON. يتم تمرير سلسلة/مصدر JSON كسلسلة JSON المعلمة ونوع الكائن.
// object to json conversionstudent student = mapper.readvalue (jsonstring ، student.class) ؛
الخطوة 3: تسلسل الكائن إلى JSON.
استخدم طريقة WriteValueasString () للحصول على تمثيل سلسلة JSON للكائن.
// object to json conversion jsonstring = mapper.writevalueasString (student) ؛
نموذج شجرة جاكسون
يقوم نموذج الشجرة بإعداد تمثيل شجرة الذاكرة لملف JSON. ObjectMapper يبني شجرة عقدة jsonnode. هذا هو النهج الأكثر مرونة. إنه مشابه لـ XML من DOM Parser.
قم بإنشاء شجرة من JSON
يوفر ObjectMapper عقدة جذر شجرة المؤشر بعد قراءة JSON. يمكن استخدام عقدة الجذر لاجتياز الشجرة الكاملة. ضع في اعتبارك مقتطف الرمز التالي للحصول على عقدة الجذر التي توفر سلسلة JSON.
// إنشاء ObjectMapper extrealObjectMapper mapper = new ObjectMapper () ؛ String jsonstring = "{/" name/":/" Mahesh Kumar/"،/" Age/": 21 ،/" exerified/": false ،/" marks/": [100،90،85]}" ؛ نموذج شجرة اجتياز
استخدم المسارات النسبية إلى عقدة الجذر في شجرة اجتياز ومعالجة البيانات للحصول على كل عقدة. ضع في اعتبارك Snippet Snippet Snippet التالي لشجرة عقدة الجذر المقدمة.
jsonnode namenode = rootnode.path ("name") ؛ system.out.println ("name:"+ namenode.getTextValue ()) ؛ jsonnode marksnode = rootnode.path ("marks") ؛ iterator iterator = marksnode.getElements () ؛مثال ينشئ دليل ملف يسمى JackSontester في Java Class C:/> Jackson_Workspace.
ملف: jacksontester.java
استيراد java.io.ioException ؛ استيراد java.util.iterator ؛ استيراد org.codehaus.jackson.jsonnode ؛ استيراد org.codehaus.jackson.jsonparseException ؛ استيراد org.codehaus.jackson.jap.jsonmapping Main (String args []) {JackSontester tester = new JackSontester () ؛ حاول {ObjectMapper mapper = new ObjectMapper () ؛ String jsonstring = "{/" name/":/" mahesh kumar/"،/" age/": 21 ،/" exeriled/": false ،/" marks/": [100،90،85]}" ؛ jsonnode rootnode = mapPPer.ReadTree (jsonstring) ؛ jsonnode namenode = rootnode.path ("name") ؛ System.out.println ("الاسم:"+ namenode.getTextValue ()) ؛ jsonnode agenode = rootnode.path ("العمر") ؛ System.out.println ("Age:" + Agenode.getIntValue ()) ؛ jsonnode VerifiedNode = rootnode.path ("التحقق") ؛ System.out.println ("تم التحقق:" + (exeripednode.getBooleanvalue ()؟ "نعم": "لا")) ؛ jsonnode marksnode = rootnode.path ("marks") ؛ iterator <jsonnode> iterator = marksnode.getElements () ؛ System.out.print ("Marks: [") ؛ بينما (iterator.hasnext ()) {jsonnode marks = iterator.next () ؛ System.out.print (marks.getIntValue () + "") ؛ } system.out.println ("]") ؛ } catch (jsonparseexception e) {e.printStackTrace () ؛ } catch (jsonmappexception e) {E.PrintStackTrace () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ }}}تحقق من نتيجة الإخراج
استخدم Javac لتجميع الفصل التالي:
نسخة الكود كما يلي:
C:/Jackson_Workspace> Javac Jacksontester.java
الآن قم بتشغيل JackSontester لترى النتيجة:
نسخة الكود كما يلي:
C:/Jackson_Workspace> Java Jacksontester
تحقق من الإخراج
الاسم: Mahesh Kumarage: 21Verified: Nomarks: [100 90 85]
شجرة التحويل إلى JSON
في هذا المثال ، استخدمنا jsonnode وكتبناها إلى ملف JSON وقراءة مرة أخرى لإنشاء شجرة.
قم بإنشاء دليل يسمى JackSontester في ملف فئة Java C:/> Jackson_Workspace.
ملف: jacksontester.java
استيراد java.io.file ؛ استيراد java.io.ioException ؛ استيراد java.util.iterator ؛ استيراد org.codehaus.jackson.jsonnode ؛ استيراد org.codehaus.jackson.jsonparsexception ؛ import org.codehaus.jackson.map.jsonmappection ؛ org.codehaus.jackson.node.arraynode ؛ import org.codehaus.jackson.node.objectnode ؛ public class jacksontester {public static void main (String args []) حاول {ObjectMapper mapper = new ObjectMapper () ؛ jsonnode rootnode = mapper.createObjectNode () ؛ jsonnode marksnode = mapper.createarraynode () ؛ ((arraynode) marksnode) .add (100) ؛ ((arraynode) marksnode) .add (90) ؛ ((arraynode) marksnode) .add (85) ؛ ((ObjectNode) rootNode) .put ("الاسم" ، "Mahesh Kumar") ؛ ((ObjectNode) rootnode) .put ("العمر" ، 21) ؛ ((ObjectNode) rootnode) .put ("التحقق" ، خطأ) ؛ ((ObjectNode) rootnode) .put ("Marks" ، marksnode) ؛ mapper.writevalue (ملف جديد ("student.json") ، rootnode) ؛ rootNode = mapper.readtree (ملف جديد ("student.json")) ؛ jsonnode namenode = rootnode.path ("name") ؛ System.out.println ("الاسم:"+ namenode.getTextValue ()) ؛ jsonnode agenode = rootnode.path ("العمر") ؛ System.out.println ("Age:" + Agenode.getIntValue ()) ؛ jsonnode VerifiedNode = rootnode.path ("التحقق") ؛ System.out.println ("تم التحقق:" + (exeripednode.getBooleanvalue ()؟ "نعم": "لا")) ؛ jsonnode marksnode1 = rootnode.path ("marks") ؛ iterator <jsonnode> iterator = marksnode1.getElements () ؛ System.out.print ("Marks: [") ؛ بينما (iterator.hasnext ()) {jsonnode marks = iterator.next () ؛ System.out.print (marks.getIntValue () + "") ؛ } system.out.println ("]") ؛ } catch (jsonparseexception e) {e.printStackTrace () ؛ } catch (jsonmappexception e) {E.PrintStackTrace () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ }}}نتائج التحقق
استخدم Javac لتجميع الفصل التالي:
نسخة الكود كما يلي:
C:/Jackson_Workspace> Javac Jacksontester.java
الآن قم بتشغيل JackSontester لترى النتيجة:
نسخة الكود كما يلي:
C:/Jackson_Workspace> Java Jacksontester
تحقق من الإخراج
الاسم: ماهيش كومار
العمر: 21
تم التحقق: لا
علامات: [100 90 85]
تحويل من شجرة إلى جافا كائن
في هذا المثال ، استخدمنا jsonnode وكتبناها إلى ملف JSON وقراءة مرة أخرى ثم تحويل كائن الطالب لإنشاء شجرة.
قم بإنشاء دليل يسمى JackSontester في ملف فئة Java C:/> Jackson_Workspace.
ملف: jacksontester.java
استيراد java.io.file ؛ استيراد java.io.ioException ؛ استيراد java.util.arrays ؛ استيراد org.codehaus.jackson.jsonnode ؛ استيراد org.codehaus.jackson.jsonparsexception ؛ org.codehaus.jackson.jsonmappection ؛ org.codehaus.jackson.node.arraynode ؛ import org.codehaus.jackson.node.objectnode ؛ public class jacksontester {public static void main (String args []) حاول {ObjectMapper mapper = new ObjectMapper () ؛ jsonnode rootnode = mapper.createObjectNode () ؛ jsonnode marksnode = mapper.createarraynode () ؛ ((arraynode) marksnode) .add (100) ؛ ((arraynode) marksnode) .add (90) ؛ ((arraynode) marksnode) .add (85) ؛ ((ObjectNode) rootNode) .put ("الاسم" ، "Mahesh Kumar") ؛ ((ObjectNode) rootnode) .put ("العمر" ، 21) ؛ ((ObjectNode) rootnode) .put ("التحقق" ، خطأ) ؛ ((ObjectNode) rootnode) .put ("Marks" ، marksnode) ؛ mapper.writevalue (ملف جديد ("student.json") ، rootnode) ؛ rootNode = mapper.readtree (ملف جديد ("student.json")) ؛ الطالب الطالب = mapper.treetovalue (rootnode ، student.class) ؛ System.out.println ("الاسم:"+ student.getName ()) ؛ System.out.println ("العمر:" + student.getage ()) ؛ system.out.println ("تم التحقق:" + (student.isverified ()؟ "نعم": "لا")) ؛ System.out.println ("Marks:"+Arrays.ToString (student.getMarks ())) ؛ } catch (jsonparseexception e) {e.printStackTrace () ؛ } catch (jsonmappexception e) {E.PrintStackTrace () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ }}} class student {string name ؛ عمري تم التحقق من منطقية. int [] علامات ؛ السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } public int getage () {return Age ؛ } public void setage (int age) {this.age = age ؛ } boolean public Isverified () {return expiled ؛ } public void setVerified (boolean expiled) {this.verified = expiled ؛ } public int [] getMarks () {return marks ؛ } setMarks public void (int [] marks) {this.marks = marks ؛ }}نتائج التحقق
استخدم Javac لتجميع الفصل التالي:
نسخة الكود كما يلي:
C:/Jackson_Workspace> Javac Jacksontester.java
الآن قم بتشغيل JackSontester لترى النتيجة:
نسخة الكود كما يلي:
C:/Jackson_Workspace> Java Jacksontester
تحقق من الإخراج
الاسم: Mahesh Kumarage: 21Verified: Nomarks: [100 90 85]