العمل مع JSON في Java: التحليل والتسلسل للمبتدئين
\n\nJSON (JavaScript Object Notation) هو تنسيق خفيف لتبادل البيانات يُستخدم على نطاق واسع في تطوير الويب والتطبيقات المحمولة والخدمات المصغرة. بالنسبة لمطور Java، فإن القدرة على قراءة (تحليل) وإنشاء (تسلسل) JSON هي مهارة أساسية. في هذه المقالة، سنشرح أساسيات العمل مع JSON في Java باستخدام أشهر مكتبتين: Jackson و Gson. المحتوى موجه للمبتدئين، لذا ستكون جميع الأمثلة بسيطة وواضحة قدر الإمكان.
\n\nما هو تحليل JSON وتسلسله؟
\nقبل الانتقال إلى الكود، دعنا نحدد المفاهيم:
\n- \n
- التسلسل — هو عملية تحويل كائن Java إلى سلسلة JSON. على سبيل المثال، قمت بإنشاء كائن
Userوتريد إرساله إلى الخادم بصيغة JSON. \n - التحليل (إلغاء التسلسل) — العملية العكسية: تحويل سلسلة JSON مرة أخرى إلى كائن Java. على سبيل المثال، تلقيت ردًا من API وتريد التعامل مع البيانات ككائن عادي. \n
إعداد المشروع: إضافة التبعيات
\nللعمل مع JSON، سنحتاج إلى مكتبات خارجية. سننظر في الخيارين الأكثر شيوعًا.
\n\nالخيار 1: Jackson (موصى به للمبتدئين)
\nJackson هي مكتبة قوية وعالية الأداء. إذا كنت تستخدم Maven، أضف إلى pom.xml:
<dependency>\n <groupId>com.fasterxml.jackson.core</groupId>\n <artifactId>jackson-databind</artifactId>\n <version>2.15.2</version>\n</dependency>\n\nالخيار 2: Gson (من Google)
\nGson هي مكتبة خفيفة وبديهية. التبعية لـ Maven:
\n<dependency>\n <groupId>com.google.code.gson</groupId>\n <artifactId>gson</artifactId>\n <version>2.10.1</version>\n</dependency>\n\nيمكن تنزيل كلتا المكتبتين يدويًا من Maven Central إذا كنت لا تستخدم نظام بناء.
\n\nمثال البيانات: فئة User
\nلجميع الأمثلة، سنستخدم فئة بسيطة User:
public class User {\n private String name;\n private int age;\n private String email;\n\n // يجب وجود مُنشئ فارغ لـ Jackson و Gson\n public User() {}\n\n public User(String name, int age, String email) {\n this.name = name;\n this.age = age;\n this.email = email;\n }\n\n // الدوال الجالبة والضابطة (مهمة للتسلسل)\n public String getName() { return name; }\n public void setName(String name) { this.name = name; }\n\n public int getAge() { return age; }\n public void setAge(int age) { this.age = age; }\n\n public String getEmail() { return email; }\n public void setEmail(String email) { this.email = email; }\n}\n\nتحليل JSON (String → Java Object)
\nسنشرح كيفية قراءة سلسلة JSON وتحويلها إلى كائن User.
باستخدام Jackson
\nimport com.fasterxml.jackson.databind.ObjectMapper;\n\npublic class JacksonParsingExample {\n public static void main(String[] args) throws Exception {\n String jsonString = "{ \\"name\\": \\"إيفان\\", \\"age\\": 30, \\"email\\": \\"ivan@example.com\\" }";\n\n ObjectMapper mapper = new ObjectMapper();\n User user = mapper.readValue(jsonString, User.class);\n\n System.out.println("الاسم: " + user.getName());\n System.out.println("العمر: " + user.getAge());\n }\n}\n\nباستخدام Gson
\nimport com.google.gson.Gson;\n\npublic class GsonParsingExample {\n public static void main(String[] args) {\n String jsonString = "{ \\"name\\": \\"ماريا\\", \\"age\\": 25, \\"email\\": \\"maria@example.com\\" }";\n\n Gson gson = new Gson();\n User user = gson.fromJson(json