Jackson হল একটি শক্তিশালী JSON প্রসেসিং লাইব্রেরি যা Java Objects এবং JSON এর মধ্যে কনভার্সন পরিচালনা করতে ব্যবহৃত হয়। আপনি Collections (যেমন List, Map) কে Java Objects এ কনভার্ট করতে পারেন Jackson এর সাহায্যে। এখানে আমরা List এবং Map কিভাবে Java Objects এ কনভার্ট করতে পারি তা দেখাব।
1. List কে Object এ কনভার্ট করা
ধরা যাক আপনার একটি List আছে যা কিছু Person অবজেক্ট ধারণ করে, এবং আপনি এই List কে JSON এ কনভার্ট করতে চান এবং তারপর JSON থেকে Java Objects এ ফিরে আসতে চান।
A. Java Class তৈরি করা:
প্রথমে, আমরা একটি Person ক্লাস তৈরি করব যা আমাদের List এর উপাদান হিসেবে কাজ করবে।
public class Person {
private String name;
private int age;
// Constructor, Getters, Setters
public Person(String name, int age) {
this.name = name;
this.age = age;
}
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;
}
}
B. List কে JSON এ কনভার্ট করা:
এখন আমরা একটি List তৈরি করব যা Person অবজেক্ট ধারণ করবে এবং তারপর Jackson ObjectMapper ব্যবহার করে এই List কে JSON এ কনভার্ট করব।
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
try {
// Create List of Person objects
List<Person> personList = new ArrayList<>();
personList.add(new Person("John", 25));
personList.add(new Person("Jane", 30));
// Create ObjectMapper instance
ObjectMapper objectMapper = new ObjectMapper();
// Convert List to JSON string
String json = objectMapper.writeValueAsString(personList);
// Print JSON string
System.out.println(json);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Output:
[{"name":"John","age":25},{"name":"Jane","age":30}]
C. JSON থেকে List Object এ কনভার্ট করা:
এখন যদি আপনি JSON স্ট্রিং থেকে List অবজেক্টে কনভার্ট করতে চান, তাহলে এটি করা যাবে নিম্নলিখিতভাবে:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.type.TypeReference;
import java.util.List;
public class Main {
public static void main(String[] args) {
try {
// Sample JSON string
String json = "[{\"name\":\"John\",\"age\":25},{\"name\":\"Jane\",\"age\":30}]";
// Create ObjectMapper instance
ObjectMapper objectMapper = new ObjectMapper();
// Convert JSON string to List of Person objects
List<Person> personList = objectMapper.readValue(json, new TypeReference<List<Person>>(){});
// Print List objects
for (Person person : personList) {
System.out.println(person.getName() + " is " + person.getAge() + " years old.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Output:
John is 25 years old.
Jane is 30 years old.
2. Map কে Object এ কনভার্ট করা
Jackson ব্যবহার করে Map (যেমন HashMap) কে Java Object (যেমন Person) এ কনভার্ট করা সম্ভব।
A. Java Class তৈরি করা:
আমরা আগের মতো Person ক্লাসটি ব্যবহার করব।
B. Map কে JSON এ কনভার্ট করা:
এখন একটি Map তৈরি করব যা String এবং Object হিসেবে মান ধারণ করবে এবং তারপর আমরা এই Map কে JSON স্ট্রিং এ কনভার্ট করব।
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
try {
// Create Map with Person object
Map<String, Person> personMap = new HashMap<>();
personMap.put("person1", new Person("John", 25));
personMap.put("person2", new Person("Jane", 30));
// Create ObjectMapper instance
ObjectMapper objectMapper = new ObjectMapper();
// Convert Map to JSON string
String json = objectMapper.writeValueAsString(personMap);
// Print JSON string
System.out.println(json);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Output:
{"person1":{"name":"John","age":25},"person2":{"name":"Jane","age":30}}
C. JSON থেকে Map Object এ কনভার্ট করা:
এখন JSON স্ট্রিং থেকে Map অবজেক্টে কনভার্ট করার জন্য নিচের কোড ব্যবহার করতে পারেন।
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.type.TypeReference;
import java.util.Map;
public class Main {
public static void main(String[] args) {
try {
// Sample JSON string
String json = "{\"person1\":{\"name\":\"John\",\"age\":25},\"person2\":{\"name\":\"Jane\",\"age\":30}}";
// Create ObjectMapper instance
ObjectMapper objectMapper = new ObjectMapper();
// Convert JSON string to Map
Map<String, Person> personMap = objectMapper.readValue(json, new TypeReference<Map<String, Person>>(){});
// Print Map objects
for (Map.Entry<String, Person> entry : personMap.entrySet()) {
Person person = entry.getValue();
System.out.println(entry.getKey() + ": " + person.getName() + " is " + person.getAge() + " years old.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Output:
person1: John is 25 years old.
person2: Jane is 30 years old.
Jackson ব্যবহার করে আপনি Collection (List, Map) কে Java Objects এ কনভার্ট করতে পারেন এবং vice versa। Jackson এর সাহায্যে ObjectMapper ব্যবহার করে আপনি:
- List এবং Map অবজেক্টগুলি JSON স্ট্রিং এ কনভার্ট করতে পারেন।
- JSON থেকে List এবং Map অবজেক্টে কনভার্ট করতে পারেন।
Jackson এর সাথে এই কনভার্সন প্রক্রিয়া খুবই সহজ এবং দ্রুত, এবং এটি Java Applications এ JSON ডেটার সাথে কাজ করার জন্য অন্যতম জনপ্রিয় টুল।
Read more