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

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

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

ابدأ الدورة

معالجة JSON في Java: نظرة عامة على المكتبات وأمثلة عملية



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



1. Jackson - المكتبة الأكثر شهرة



Jackson (com.fasterxml.jackson.core) هي مكتبة قوية ذات أداء عالٍ. تدعم التعليقات التوضيحية (Annotations) والتيارات (Streams) والتخصيص الكامل للربط (Mapping). للإضافة، أضف إلى Maven:



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


مثال: تسلسل كائن إلى JSON



import com.fasterxml.jackson.databind.ObjectMapper;import java.util.*;

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

// إنشاء كائن Map<String, Object> user = new HashMap<>(); user.put("name", "إيفان"); user.put("age", 30); user.put("skills", Arrays.asList("Java", "Spring", "SQL"));

// تسلسل إلى سلسلة JSON String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user); System.out.println(json); }}


الإخراج:



{  "name" : "إيفان",  "age" : 30,  "skills" : [ "Java", "Spring", "SQL" ]}


مثال: تحليل JSON إلى كائن Java



import com.fasterxml.jackson.databind.ObjectMapper;

public class ParseJson { public static void main(String[] args) throws Exception { String json = "{\\"name\\":\\"آنا\\",\\"age\\":25}";

ObjectMapper mapper = new ObjectMapper(); User user = mapper.readValue(json, User.class);

System.out.println("الاسم: " + user.getName()); System.out.println("العمر: " + user.getAge()); }}

class User { private String name; private int age;

// يجب وجود الدوال الجالبة (getters) والدوال السالبة (setters) 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; }}


2. Gson - مكتبة خفيفة وبسيطة من Google



Gson (com.google.code.gson) تتميز ببساطة واجهة برمجة التطبيقات (API) والحد الأدنى من التكوين. مناسبة للمشاريع الصغيرة. Maven:



<dependency>    <groupId>com.google.code.gson</groupId>    <artifactId>gson</artifactId>    <version>2.10.1</version></dependency>


مثال: إنشاء JSON من Map



import com.google.gson.Gson;import com.google.gson.GsonBuilder;import java.util.*;

public class GsonExample { public static void main(String[] args) { Gson gson = new GsonBuilder().setPrettyPrinting().create();

Map<String, Object> data = new LinkedHashMap<>(); data.put("title", "مثال"); data.put("completed", false); data.put("tags", List.of("java", "json"));

String json = gson.toJson(data); System.out.println(json); }}


مثال: تحليل JSON إلى قائمة كائنات



import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;import java.lang.reflect.Type;import java.util.*;

public class GsonParseList { public static void main(String[] args) { String json = "[{\\"id\\":1,\\"name\\":\\"المنتج أ\\"},{\\"id\\":2,\\"name\\":\\"المنتج ب\\"}]";\

توصيات