অর্গ.জেসন (Org.Json) লাইব্রেরি JSON ডাটা ম্যানিপুলেশন এবং স্টোরেজের জন্য জনপ্রিয় একটি টুল। তবে কখনো কখনো আপনার প্রয়োজন হতে পারে কাস্টম সিরিয়ালাইজেশন (Custom Serialization) তৈরি করার, যেখানে আপনি JSON অবজেক্টের মধ্যে ডাটা সিরিয়ালাইজ করার জন্য বিশেষ কোনো লজিক ব্যবহার করতে পারেন।
কাস্টম সিরিয়ালাইজার তৈরি করার জন্য, JSONObject ক্লাসের put() মেথডের পাশাপাশি, আপনি আপনার নিজস্ব কাস্টম সিরিয়ালাইজেশন লজিকও প্রয়োগ করতে পারেন। এটি বিশেষভাবে দরকারি হয় যখন আপনি কোনো অবজেক্টের ফিল্ডগুলিকে বিশেষভাবে প্রক্রিয়া করতে চান বা নির্দিষ্ট ধরনের ডাটা মানে কনভার্ট করতে চান।
কাস্টম সিরিয়ালাইজার তৈরি করার প্রক্রিয়া
- Custom Object তৈরি করুন: একটি কাস্টম অবজেক্ট তৈরি করুন, যেমন একটি ক্লাস।
- Custom Serialization Logic: আপনি যে কাস্টম সিরিয়ালাইজেশন প্রক্রিয়া চান, সেটি তৈরি করুন।
- JSONObject.put() ব্যবহার করুন:
JSONObject.put()মেথডের মাধ্যমে আপনার কাস্টম সিরিয়ালাইজেশন লজিক প্রয়োগ করুন।
উদাহরণ: কাস্টম সিরিয়ালাইজার তৈরি করা
ধরা যাক, আমাদের একটি Person ক্লাস আছে এবং আমরা একটি কাস্টম সিরিয়ালাইজার তৈরি করতে চাই, যা Person অবজেক্টের age ফিল্ডকে একটি বিশেষ ফরম্যাটে JSON এ সিরিয়ালাইজ করবে।
Step 1: Custom Object তৈরি (Person ক্লাস)
public class Person {
private String name;
private int age;
private String city;
// কনস্ট্রাক্টর
public Person(String name, int age, String city) {
this.name = name;
this.age = age;
this.city = city;
}
// Getter এবং Setter
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getCity() {
return city;
}
}
Step 2: কাস্টম সিরিয়ালাইজেশন Logic তৈরি
আমরা কাস্টম সিরিয়ালাইজেশনে age ফিল্ডকে একটি বিশেষ ফরম্যাটে কনভার্ট করব (যেমন, "Age: 30")।
import org.json.JSONObject;
public class CustomSerializer {
// Custom Serializer Method
public static JSONObject serializePerson(Person person) {
JSONObject jsonObject = new JSONObject();
// Person এর ডাটা JSON অবজেক্টে যোগ করা
jsonObject.put("name", person.getName());
// কাস্টম ফরম্যাটে age সিরিয়ালাইজেশন
String customAgeFormat = "Age: " + person.getAge();
jsonObject.put("age", customAgeFormat);
jsonObject.put("city", person.getCity());
return jsonObject;
}
public static void main(String[] args) {
// Person অবজেক্ট তৈরি
Person person = new Person("John", 30, "New York");
// কাস্টম সিরিয়ালাইজার ব্যবহার
JSONObject serializedPerson = serializePerson(person);
// JSON আউটপুট প্রিন্ট করা
System.out.println(serializedPerson.toString());
}
}
কোডের ব্যাখ্যা
- Person ক্লাস: এখানে একটি সাধারণ
Personক্লাস তৈরি করা হয়েছে যার তিনটি প্রপার্টি রয়েছে (name,age,city)। এর জন্য কনস্ট্রাক্টর এবং getter methods দেওয়া হয়েছে। - serializePerson() মেথড: এটি একটি কাস্টম সিরিয়ালাইজার মেথড যা
Personঅবজেক্টটি গ্রহণ করে এবংJSONObjectএ কাস্টম সিরিয়ালাইজেশন লজিক প্রয়োগ করে।ageফিল্ডটি আমরা কাস্টম ফরম্যাটে সিরিয়ালাইজ করেছি, যেমন"Age: 30"। - Main Method: এই মেথডে একটি
Personঅবজেক্ট তৈরি করা হয়েছে এবং তা কাস্টম সিরিয়ালাইজার মেথডের মাধ্যমে JSON অবজেক্টে কনভার্ট করা হয়েছে।
আউটপুট:
{"name":"John","age":"Age: 30","city":"New York"}
কাস্টম সিরিয়ালাইজেশন এর প্রয়োগ
এভাবে আপনি কাস্টম সিরিয়ালাইজেশন প্রক্রিয়া ব্যবহার করে JSON অবজেক্টে যেকোনো ডাটা কাস্টম ফরম্যাটে সিরিয়ালাইজ করতে পারেন। যেমন:
- Date formatting: যদি আপনার কোনো
Dateটাইপের ফিল্ড থাকে, তাহলে আপনি একটি নির্দিষ্ট তারিখ ফরম্যাটে সিরিয়ালাইজ করতে পারেন। - Complex objects: যদি আপনার অবজেক্টে আরও অন্যান্য অবজেক্ট থাকে, সেগুলির জন্যও কাস্টম সিরিয়ালাইজার তৈরি করা যেতে পারে।
- Sensitive information: আপনি কোনো নির্দিষ্ট ইনফরমেশন (যেমন পাসওয়ার্ড) JSON এ সিরিয়ালাইজ করার আগে এনক্রিপ্ট করতে পারেন।
উপসংহার
অর্গ.জেসন (Org.Json) লাইব্রেরি ব্যবহার করে কাস্টম সিরিয়ালাইজার তৈরি করা খুবই সহজ এবং কার্যকর। JSONObject.put() মেথডের মাধ্যমে আপনি সহজেই কাস্টম সিরিয়ালাইজেশন লজিক প্রয়োগ করতে পারেন এবং বিভিন্ন ধরনের ডাটা যেমন Date, Integer, String ইত্যাদি কাস্টম ফরম্যাটে JSON এ সিরিয়ালাইজ করতে পারেন। এটি JSON ডাটা তৈরির সময় বিশেষ প্রয়োজনে অত্যন্ত সহায়ক।
Read more