يتم استخدام واجهة برمجة تطبيقات ربط البيانات لتحويل JSON والوصول إليها باستخدام السمات أو استخدام التعليقات التوضيحية POJO (كائن Java العادي). فيما يلي نوعان منه.
ربط البيانات البسيطة - تحويل JSON من خرائط Java والقوائم والسلاسل والأرقام والطراز والكائنات الفارغة.
ربط البيانات الكامل - تحويل JSON إلى أي نوع Java. سوف نربط بشكل منفصل في الفصل التالي.
ObjectMapper يقرأ/يكتب JSON نوعين من ربط البيانات. الطريقة الأكثر ملاءمة لربط البيانات هي محلل JaxB الذي يشبه XML.
ربط البيانات البسيطة
يشير ربط البيانات البسيط إلى تعيين JSON لأنواع بيانات Java الأساسية. يسرد الجدول التالي العلاقة بين نوع JSON ونوع Java.
دعونا نلقي نظرة على ربط معالجة البيانات البسيطة. سنقوم هنا بتخطيط أنواع Java البدائية مباشرة JSON والعكس بالعكس.
قم بإنشاء ملف فئة Java يسمى JackSontester في الدليل C:/> Jackson_Workspace.
ملف: jacksontester.java
استيراد java.io.file ؛ استيراد java.io.ioException ؛ استيراد java.util.hashmap ؛ استيراد java.util.map ؛ استيراد org.codehaus.jackson.jsongeneration org.codehaus.jackson.map.ObjectMapper ؛ فئة عامة jacksontester {public static void main (string args []) {Jacksontester tester = new JackSontester () ؛ حاول {ObjectMapper mapper = new ObjectMapper () ؛ خريطة <string ، object> studentDatamap = new HashMap <string ، Object> () ؛ int [] marks = {1،2،3} ؛ الطالب الطالب = طالب جديد () ؛ student.setage (10) ؛ student.setName ("Mahesh") ؛ // Java Object StudentDatamap.put ("الطالب" ، الطالب) ؛ // java string studentDatamap.put ("name" ، "Mahesh Kumar") ؛ // java boolean studentDatamap.put ("التحقق" ، boolean.false) ؛ // Array StudentDatamap.put ("Marks" ، Marks) ؛ mapper.writevalue (ملف جديد ("student.json") ، studentDatamap) ؛ // النتيجة student.json // {// "student": {"name": "Mahesh" ، "Age": 10} ، // "Marks": [1،2،3] ، // "false": // "name": system.out.println (studentDatamap.get ("student")) ؛ System.out.println (studentDatamap.get ("name")) ؛ system.out.println (studentDatamap.get ("exerified")) ؛ System.out.println (studentDatamap.get ("Marks")) ؛ } 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
تحقق من نتيجة الإخراج
{name = Mahesh ، Age = 10} Mahesh Kumarfalse [1 ، 2 ، 3] ملزمة البيانات الكاملة
يشير ربط البيانات الكامل إلى تعيين JSON إلى أي كائن Java.
// إنشاء ObjectMapper extrealObjectMapper mapper = new ObjectMapper () ؛ // MAP JSON COTATION to Student ObjectStudent student = mapper.readvalue (ملف جديد ("student.json") ، student.class) ؛ // خريطة كائن الطالب إلى json contentMapper.writeValue (ملف جديد ("student.json") ، الطالب) ؛دعونا نلقي نظرة على ربط معالجة البيانات البسيطة. سنقوم هنا بتخطيط كائنات Java مباشرة إلى JSON والعكس بالعكس.
قم بإنشاء دليل يسمى JackSontester في ملف فئة Java C:/> Jackson_Workspace.
ملف: jacksontester.java
استيراد java.io.file ؛ استيراد java.io.ioException ؛ استيراد org.codehaus.jackson.jsongeneration void main (string args []) {jacksontester tester = new JackSontester () ؛ جرب {student student = new student () ؛ student.setage (10) ؛ student.setName ("Mahesh") ؛ tester.writejson (طالب) ؛ الطالب 1 = tester.readjson () ؛ system.out.println (student1) ؛ } catch (jsonparseexception e) {e.printStackTrace () ؛ } catch (jsonmappexception e) {E.PrintStackTrace () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ }} private void writejson (طالب طالب) يلقي jsongenerationException ، jsonmappexception ، ioException {ObjectMapper mapper = new ObjectMapper () ؛ mapper.writevalue (ملف جديد ("student.json") ، طالب) ؛ } الطالب الخاص ReadJson () يلقي JsonParseException ، JsonMappexception ، ioException {ObjectMapper mapper = new ObjectMapper () ؛ الطالب الطالب = mapper.readvalue (ملف جديد ("student.json") ، student.class) ؛ عودة الطالب }} فئة طالب {اسم السلسلة الخاصة ؛ عصر 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
تحقق من نسخ رمز النسخ على النحو التالي:
الطالب [الاسم: ماهيش ، العمر: 10]