معالجة JSON في Java: المكتبات والأدوات للعمل مع JSON

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

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

ابدأ الدورة

معالجة JSON في Java: مراجعة المكتبات والأدوات



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



1. Jackson (FasterXML Jackson)

Jackson هي المكتبة الأكثر شيوعًا والأعلى أداءً للعمل مع JSON في Java. وهي تدعم المعالجة التدفقية (بأسلوب SAX) ونموذج الكائنات (بأسلوب DOM). Jackson جزء من Spring Boot والعديد من تطبيقات المؤسسات.



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

  • تحويل كائنات Java إلى JSON والعكس (Serialization/Deserialization)
  • المعالجة التدفقية لملفات JSON الكبيرة (JsonParser، JsonGenerator)
  • دعم التعليقات التوضيحية للضبط الدقيق (@JsonProperty، @JsonIgnore، @JsonFormat)
  • العمل مع شجرة العقد (JsonNode)
  • دعم JSON Schema والتحقق من الصحة


مثال على الكود: الاستخدام الأساسي لـ Jackson

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

public class JacksonExample { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper();

// تحويل كائن إلى JSON Person person = new Person("إيفان", 30, "ivan@example.com"); String json = mapper.writeValueAsString(person); System.out.println(json); // {"name":"إيفان","age":30,"email":"ivan@example.com"}

// تحويل JSON إلى كائن String jsonInput = "{\\\"name\\\":\\\"ماريا\\\",\\\"age\\\":25}"; Person deserialized = mapper.readValue(jsonInput, Person.class); System.out.println(deserialized.getName()); // ماريا

// العمل مع شجرة العقد JsonNode root = mapper.readTree(jsonInput); System.out.println(root.get("age").asInt()); // 25 }}

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; } // الدوال الجالبة والسالبة...}


2. Gson (Google Gson)

Gson هي مكتبة من Google، تشتهر ببساطتها وخفتها. وهي مثالية للمشاريع الصغيرة والمتوسطة التي لا تتطلب أقصى أداء. تستخدم Gson الانعكاس (Reflection) للتحويل التلقائي.



الميزات:

  • الحد الأدنى من التهيئة — تعمل "فورًا"
  • دعم التعليقات التوضيحية (@Expose، @SerializedName)
  • إمكانية إنشاء محولات مخصصة (JsonSerializer، JsonDeserializer)
  • العمل مع المجموعات، المصفوفات، والكائنات المتداخلة


مثال على الكود: Gson قيد التشغيل

import com.google.gson.Gson;import com.google.gson.GsonBuilder;

public class GsonExample { public static void main(String[] args) { Gson gson = new GsonBuilder() .setPrettyPrinting() // إخراج منسق .create();

// إنشاء JSON من كائن Product product = new Product("لابتوب", 899.99, true); String json = gson.toJson(product); System.out.println(json);

// تحليل JSON إلى كائن String jsonInput = "{\\\"name\\\":\\\"فأرة\\\",\\\"price\\\":25.5,\\\"available\\\":false}"; Product parsed = gson.fromJson(jsonInput, Product.class); System.out.println(parsed.getName()); // فأرة }}

class Product {

توصيات