معالجة JSON في Java: مكتبات Jackson وGson للعمل مع البيانات

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

معالجة JSON في Java: مكتبات Jackson وGson



JSON (JavaScript Object Notation) هو تنسيق خفيف لتبادل البيانات، يُستخدم على نطاق واسع في تطوير الويب وواجهات برمجة التطبيقات (API) والخدمات المصغرة. في Java، توجد عدة مكتبات قوية للعمل مع JSON، من بينها الأكثر شهرة Jackson وGson. في هذه المقالة، سنستعرض بالتفصيل كلتا المكتبتين، وإمكانياتهما، وأمثلة الاستخدام، والميزات.



1. مكتبة Jackson



Jackson هي مكتبة عالية الأداء لمعالجة JSON في Java، تم تطويرها بواسطة FasterXML. توفر مجموعة كاملة من الأدوات للتسلسل، وإلغاء التسلسل، والتحليل، وتحويل البيانات. تعتبر Jackson المعيار الفعلي في نظام Spring البيئي.



الإمكانيات الرئيسية لـ Jackson:

  • ObjectMapper — الفئة الرئيسية لتحويل كائنات Java إلى JSON والعكس.
  • التعليقات التوضيحية (Annotations) — إعداد مرن للتسلسل باستخدام التعليقات التوضيحية (@JsonProperty, @JsonIgnore, @JsonFormat).
  • دعم Stream API — قراءة وكتابة تدفقات JSON.
  • تسلسل قابل للتخصيص — إمكانية إنشاء مسلسلات ومزيلات تسلسل مخصصة.


مثال على استخدام Jackson:

import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.SerializationFeature;

public class JacksonExample { public static void main(String[] args) throws Exception { // إنشاء كائن للربط ObjectMapper mapper = new ObjectMapper(); mapper.enable(SerializationFeature.INDENT_OUTPUT);

// مثال على فئة Person person = new Person("إيفان", 30, "ivan@example.com");

// التسلسل إلى JSON String jsonString = mapper.writeValueAsString(person); System.out.println("JSON: " + jsonString);

// إلغاء التسلسل من JSON String jsonInput = "{\\\"name\\\":\\\"ماريا\\\",\\\"age\\\":25,\\\"email\\\":\\\"maria@example.com\\\"}"; Person deserializedPerson = mapper.readValue(jsonInput, Person.class); System.out.println("الكائن: " + deserializedPerson.getName()); }}

class Person { private String name; private int age; private String email;

public Person() {} // المُنشئ الإجباري

public Person(String name, int age, String email) { this.name = name; this.age = age; this.email = email; }

// الدوال الجالبة والضابطة public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }}


إضافة Jackson (Maven):

<dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.15.2</version></dependency>


2. مكتبة Gson



Gson هي مكتبة من Google لتسلسل وإلغاء تسلسل كائنات Java إلى JSON والعكس. تتميز بسهولة الاستخدام وخفة الوزن. غالبًا ما يتم اختيار Gson للمشاريع الصغيرة وتطوير تطبيقات Android المحمولة.



الإمكانيات الرئيسية لـ Gson:

  • GsonBuilder — إعداد سلوك التسلسل.
  • التعليقات التوضيحية (Annotations) — دعم @SerializedName لإعادة تسمية الحقول.
  • دعم مصفوفات JSON — العمل مع المجموعات.
  • معالجة القيم الفارغة (Null) — خيار تضمين/استبعاد القيم الفارغة.


مثال على استخدام Gson:

import com.google.gson.Gson;import com.google.gson.GsonB                    

توصيات