JSON تمثل جافا سكريبت تدوين كائن هذا هو تنسيق مرجح صغير جدًا لتخزين البيانات ونقلها. من السهل جدًا فهم تنسيق JSON لأنه يحتوي على ملف يصف نفسه طبيعة. يستخدم JSON بشكل أساسي لنقل البيانات بين الخادم وتطبيق الويب.
تبدو تفاصيل الموظف المكتوبة بتنسيق JSON كما يلي:
{ 'Employee': { 'name': 'Emma Watson', 'salary': 40000, 'married': false } }
كائن جافا هو مثيل لفئة أو مكون مستقل له خصائص وطرق لجعل نوع معين من البيانات مفيدًا. جافا الكائن له حالة وسلوك وهوية.
تتم كتابة كائن Java الخاص بالموظف بالطريقة التالية:
//Defining an Employee class class Employee{ //Defining properties String name; int salary; Boolean married; //creating main() method of teh Employee class public static void main(String args[]){ //Creating object of Employee class Employee emp =new Employee(); emp.name = 'Emma Watson'; emp.salary = 40000; emp.married = false; //Printing values of the object System.out.println(emp.name); System.out.println(emp.salary); System.out.println(emp.married); } }
نحتاج في كثير من الأحيان إلى تحويل كائنات Java إلى JSON حتى نتمكن من فهمها بسهولة. لتحويل كائن Java إلى كائن JSON، لدينا الطريقتان أو الطريقة التالية:
- باستخدام مكتبة GSON
- باستخدام جاكسون API
دعونا نفهم كل منهما واحدا تلو الآخر.
باستخدام مكتبة GSON
ال جيسون تلعب المكتبة دورًا مهمًا في تحويل كائن Java إلى JSON. لا تقوم مكتبة GSON بتحويل كائن Java إلى JSON فحسب، بل تستخدمه أيضًا لتحويل سلسلة JSON إلى كائن Java المكافئ لها.
هذه هي الخطوات التالية لتحويل كائن Java إلى JSON:
- إنشاء مشروع مافن.
- أضف تبعية GSON في xml ملف.
- قم بإنشاء كائن Java قديم عادي لتحويله إلى JSON.
- قم بإنشاء فئة Java لتحويل كائن Java إلى JSON.
الخطوة 1: إنشاء مشروع مخضرم
في الخطوة الأولى، نحتاج إلى إنشاء مشروع مخضرم باستخدام Eclipse IDE. يعد تحويل كائنات Java إلى JSON مفهومًا متقدمًا لـ Java، لذا ننصحك باستخدام IDE مثل Eclipse لفهم البرامج بسهولة.
الخطوة 2: إضافة تبعية GSON في pom.xml
في الخطوة التالية، نحتاج إلى إضافة تبعية GSON التالية في ملف pom.xml لاستخدام مكتبة GSON.
تاريخ التحويل إلى سلسلة
com.google.code.gson gson 2.8.6
بعد إضافة التبعية، يبدو ملف pom.xml كما يلي:
الخطوة 3: إنشاء POJO للتحويل إلى JSON
في الخطوة التالية، نحن بحاجة إلى إنشاء بوجو الذي نريد تحويله إلى كائن JSON. في مثالنا، قمنا بإنشاء فئة MobilePhone باستخدام getter وsetters for العلامة التجارية، الاسم، ذاكرة الوصول العشوائي ، و ذاكرة للقراءة فقط .
MobilePhone.java
package javaTpoint.JavaObjectToJSON; //Creating MobilePhone class public class MobilePhone { //Creating properties of the class private String brand; private String name; private int ram; private int rom; //Setter and Getters public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getRam() { return ram; } public void setRam(int ram) { this.ram = ram; } public int getRom() { return rom; } public void setRom(int rom) { this.rom = rom; } Overriding the toString() method @Override public String toString() { // TODO Auto-generated method stub return ''MobilePhone [MobileBrand '+ brand + ', MobileName = ' + name + ', RAM = ' + ram + ', ROM = ' + rom + ']'; } }
الخطوة 4: قم بإنشاء فئة Java لتحويل كائن Java إلى JSON
slf4j مقابل log4j
نحتاج إلى إنشاء فئة Java جديدة تستخدم GSON لتحويل كائن MobilePhone إلى JSON. في هذا الفصل، سنقوم بإنشاء طريقة getMobile(). داخل الطريقة، نقوم بتعيين القيم لخصائص فئة MobilePhone ونعيد كائن MobilePhone.
في الطريقة الرئيسية، سنقوم بإنشاء كائن من فئة MobilePhone وتخزين القيمة المعادة للطريقة geMobile(). بعد ذلك سوف نستخدم جيسون ().toJson () طريقة لتحويل هذا الكائن إلى كائن JSON.
تحويلJSON.java
package JavaTpoint.JavaObjectToJSON; import com.google.gson.Gson; public class ConvertJSON { public static MobilePhone getMobile(MobilePhone mobile) { mobile.setBrand('SAMSUNG'); mobile.setName('J2 Core'); mobile.setRam(2); mobile.setRom(4); return mobile; } public static void main(String[] args) { // TODO Auto-generated method stub MobilePhone mobilePhone = new MobilePhone(); mobilePhone = getMobile(mobilePhone); System.out.println('The JSON representation of Object mobilePhone is '); System.out.println(new Gson().toJson(mobilePhone)); } }
عندما نقوم بتشغيل ملف ConvertJSON.java، سنرى كائن JSON لكائن فئة MobilePhone.
باستخدام مكتبة جاكسون
جاكسون مكتبة هي واحدة من أبسط المكتبات القائمة على جافا. تُستخدم مكتبة جاكسون لإجراء تسلسل لكائن Java إلى JSON والعكس. ال ObjectMapper توفر فئة Jackson API طرقًا لتحويل كائن Java إلى تنسيق أو كائن JSON. ال ObjectMapper فصل writeValueAsString() تأخذ الطريقة كائن JSON كمعلمة وترجع سلسلة JSON الخاصة بها.
هذه هي الخطوات التالية لتحويل كائن Java إلى كائن JSON باستخدام Jackson API:
- إنشاء مشروع مافن
- أضف تبعية Jackson إلى ملف pom.xml.
- قم بإنشاء كائن POJO.
- قم بإنشاء فئة جديدة لتحويل كائن Java إلى كائن JSON.
الخطوة 1: إنشاء مشروع مخضرم
في الخطوة الأولى، نحتاج إلى إنشاء مشروع مخضرم باستخدام Eclipse IDE. تمامًا مثل GSON، يتم دعم Jackson API أيضًا بواسطة Eclipse.
الخطوة 2: إضافة تبعية جاكسون في pom.xml
في الخطوة التالية، نحتاج إلى إضافة تبعية Jackson التالية في ملف pom.xml الخاص بنا لاستخدام مكتبة Jackson.
com.fasterxml.jackson.core jackson-databind 2.12.1
الخطوة 3: إنشاء POJO للتحويل إلى JSON
في الخطوة التالية، نحتاج إلى إنشاء POJO، والذي نريد تحويله إلى كائن JSON. في هذا المثال، قمنا بإنشاء فئة منتج تحتوي على getter وsetters للخصائص مثل الاسم, و سعر .
Product.java
package JavaTpoint.JavaObjectToJSON; //Creating Product class public class Product { //Creating properties of Product class private int id; private String name; private int price; //Getter and Setters public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } @Override public String toString() { // TODO Auto-generated method stub return ''Product [ProductId '+ id + ', ProductName = ' + name + ', ProductPrice = ' + price + ']'; } }
الخطوة 4: قم بإنشاء فئة Java لتحويل كائن Java إلى JSON
تمامًا مثل مثالنا السابق عن GSON، سنقوم أيضًا بإنشاء فئة Java جديدة ObjectToJson . داخل الطريقة، قمنا بإنشاء طريقة getObjectData() لتعيين القيم لكائن المنتج وإرجاع هذا الكائن من فئة المنتج.
جافا فرز المصفوفات
في الطريقة الرئيسية () قمنا بإنشاء كائن من فئة المنتج وفئة ObjectMapper. بعد ذلك سوف نستخدم writeValueAsString() طريقة فئة ObjectMapper لإخفاء كائن Java في كائن JSON.
ObjectToJson.java
package JavaTpoint.JavaObjectToJSON; import java.io.IOException; import com.fasterxml.jackson.databind.ObjectMapper; public class ObjectToJson { public static void main(String[] a) { // Creating object of Product Product product = new Product(); // Inserting the data into the object product = getObjectData(product); // Creating Object of ObjectMapper define in Jackson API ObjectMapper Obj = new ObjectMapper(); try { // Converting the Java object into a JSON string String jsonStr = Obj.writeValueAsString(product); // Displaying Java object into a JSON string System.out.println(jsonStr); } catch (IOException e) { e.printStackTrace(); } } // Getting data that we want to insert into an object public static Product getObjectData(Product product) { // Insert the data product.setId(101); product.setName('Spark 131'); product.setPrice(10000); // Returning the product object return product; } }
عندما نقوم بتشغيل ObjectToJson.java الملف، سنرى سلسلة JSON لكائن فئة المنتج.
يتم استخدام كلا الطريقتين في سيناريوهات مختلفة. كلاهما بسيط وسريع وسهل الاستخدام والفهم.