Json.Simple লাইব্রেরি Java এ JSON ডেটা তৈরি, পার্স এবং ম্যানিপুলেট করার জন্য একটি হালকা এবং সহজ লাইব্রেরি। যখন আপনি Complex Object এবং Nested Object (অর্থাৎ, একটি অবজেক্টের মধ্যে আরেকটি অবজেক্ট) JSON ফরম্যাটে সেরিয়ালাইজ (serialize) করেন, তখন এটি JSON স্ট্রিং ফরম্যাটে রূপান্তরিত হয়, যা পরে পাঠানো বা সংরক্ষণের জন্য ব্যবহার করা যেতে পারে।
Complex Object এবং Nested Object Serialization কি?
- Complex Object Serialization: একটি অবজেক্টের মধ্যে একাধিক ডেটা ফিল্ড থাকতে পারে, এবং আপনি এই সমস্ত ডেটাকে JSON ফরম্যাটে রূপান্তর (serialize) করতে পারেন।
- Nested Object Serialization: Nested objects হল এমন অবজেক্ট যেখানে একাধিক অবজেক্ট একটি অন্য অবজেক্টের মধ্যে থাকে। এগুলোকেও JSON ফরম্যাটে সেরিয়ালাইজ করা যায়।
Json.Simple-এ complex objects এবং nested objects সেরিয়ালাইজ করতে, আপনাকে JSONObject এবং JSONArray ব্যবহার করতে হয়।
Complex Object Serialization উদাহরণ
ধরা যাক, আপনার কাছে একটি Person অবজেক্ট আছে, যা নাম, বয়স এবং একটি Address অবজেক্ট ধারণ করে। আপনাকে এই সব ডেটা JSON ফরম্যাটে রূপান্তর করতে হবে।
1. Complex Object Example:
import org.json.simple.JSONObject;
public class ComplexObjectExample {
public static void main(String[] args) {
// Address JSONObject তৈরি করা
JSONObject address = new JSONObject();
address.put("street", "123 Main St");
address.put("city", "New York");
address.put("postalCode", "10001");
// Person JSONObject তৈরি করা
JSONObject person = new JSONObject();
person.put("name", "John");
person.put("age", 30);
person.put("address", address); // Nested Object
// Complex Object কে String-এ রূপান্তর করা (Serialize করা)
String jsonString = person.toJSONString();
// JSON String প্রিন্ট করা
System.out.println(jsonString);
}
}
আউটপুট:
{"name":"John","age":30,"address":{"street":"123 Main St","city":"New York","postalCode":"10001"}}
এখানে:
addressএকটি nested JSON অবজেক্ট যা person অবজেক্টের মধ্যে অন্তর্ভুক্ত করা হয়েছে।toJSONString()ব্যবহার করে পুরো complex object JSON স্ট্রিং আকারে রূপান্তরিত হয়েছে।
Nested Object Serialization উদাহরণ
একটি nested object তে একটি অবজেক্টের মধ্যে আরেকটি অবজেক্ট থাকতে পারে, যেমন এখানে Address অবজেক্টের মধ্যে City এবং PostalCode তথ্য রয়েছে।
2. Nested Object Example:
import org.json.simple.JSONObject;
public class NestedObjectExample {
public static void main(String[] args) {
// City JSONObject তৈরি করা
JSONObject city = new JSONObject();
city.put("name", "New York");
city.put("state", "NY");
// Address JSONObject তৈরি করা
JSONObject address = new JSONObject();
address.put("street", "123 Main St");
address.put("city", city); // Nested Object
address.put("postalCode", "10001");
// Person JSONObject তৈরি করা
JSONObject person = new JSONObject();
person.put("name", "Jane");
person.put("age", 25);
person.put("address", address); // Nested Object
// Nested Object কে String-এ রূপান্তর করা (Serialize করা)
String jsonString = person.toJSONString();
// JSON String প্রিন্ট করা
System.out.println(jsonString);
}
}
আউটপুট:
{"name":"Jane","age":25,"address":{"street":"123 Main St","city":{"name":"New York","state":"NY"},"postalCode":"10001"}}
এখানে, City অবজেক্টটি Address অবজেক্টের মধ্যে nested এবং সেই Address অবজেক্টটি Person অবজেক্টের মধ্যে nested রয়েছে।
Complex Object এবং Nested Object Serialization with JSONArray
এছাড়া, আপনি যদি একটি JSONArray ব্যবহার করেন যেখানে একাধিক Complex Objects বা Nested Objects রাখতে চান, তাও করা যায়। নিচে একটি উদাহরণ দেওয়া হল যেখানে JSONArray তে একাধিক Person অবজেক্ট রাখা হয়েছে।
3. JSONArray Example with Nested Objects:
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class JSONArrayExample {
public static void main(String[] args) {
// JSONArray তৈরি করা
JSONArray peopleArray = new JSONArray();
// Person 1 JSONObject তৈরি করা
JSONObject person1 = new JSONObject();
person1.put("name", "John");
person1.put("age", 30);
// Address for Person 1
JSONObject address1 = new JSONObject();
address1.put("street", "123 Main St");
address1.put("city", "New York");
person1.put("address", address1);
// Person 2 JSONObject তৈরি করা
JSONObject person2 = new JSONObject();
person2.put("name", "Jane");
person2.put("age", 25);
// Address for Person 2
JSONObject address2 = new JSONObject();
address2.put("street", "456 Oak St");
address2.put("city", "Los Angeles");
person2.put("address", address2);
// JSONArray তে Person 1 এবং Person 2 যোগ করা
peopleArray.add(person1);
peopleArray.add(person2);
// JSONArray কে String-এ রূপান্তর করা (Serialize করা)
String jsonString = peopleArray.toJSONString();
// JSON String প্রিন্ট করা
System.out.println(jsonString);
}
}
আউটপুট:
[{"name":"John","age":30,"address":{"street":"123 Main St","city":"New York"}},{"name":"Jane","age":25,"address":{"street":"456 Oak St","city":"Los Angeles"}}]
এখানে, দুটি Person অবজেক্টকে একটি JSONArray তে রাখা হয়েছে এবং প্রতিটি Person অবজেক্টের মধ্যে Address অবজেক্ট নেস্টেড রয়েছে।
Summary of Key Points
- Complex Object:
- একটি অবজেক্টের মধ্যে একাধিক ফিল্ড থাকতে পারে, এবং এটি JSON ফরম্যাটে সেরিয়ালাইজ করা যায়।
- Nested Object:
- একটি অবজেক্টের মধ্যে আরেকটি অবজেক্ট থাকতে পারে। এটি JSON ফরম্যাটে সেরিয়ালাইজ করা যায় এবং JSONObject ব্যবহার করে এটি তৈরি করা হয়।
- JSONArray:
- একাধিক JSONObject বা nested objects সংরক্ষিত থাকতে পারে। এটি JSONArray এর মাধ্যমে করা হয় এবং সবগুলো অবজেক্ট JSON ফরম্যাটে সেরিয়ালাইজ করা যায়।
- toJSONString():
toJSONString()মেথড JSON অবজেক্টকে স্ট্রিং হিসেবে রূপান্তর করে, যা পরে সার্ভারে পাঠানো বা স্টোর করা যেতে পারে।
- JSON Structure:
- JSON ডেটা key-value pairs এবং arrays ধারণ করে, যা মানুষ এবং মেশিনের জন্য পঠনযোগ্য এবং পার্সযোগ্য।
Json.Simple লাইব্রেরি ব্যবহার করে complex objects এবং nested objects সেরিয়ালাইজ করা খুবই সহজ এবং কার্যকরী। JSON অবজেক্টের মধ্যে একাধিক JSONObject, JSONArray, এবং nested objects ব্যবহার করে জটিল ডেটা স্ট্রাকচার তৈরি এবং রূপান্তর করা সম্ভব। JSON ফরম্যাটের এই ক্ষমতা ডেটা বিনিময়, স্টোরেজ এবং অন্যান্য অনেক কার্যক্রমে খুবই কার্যকরী।
Read more