Jackson হলো একটি শক্তিশালী JSON প্রক্রিয়াকরণ লাইব্রেরি যা Java-তে JSON Serialization (Java Object থেকে JSON এ রূপান্তর) এবং Deserialization (JSON থেকে Java Object এ রূপান্তর) সহজ করে তোলে। Maven প্রজেক্টে Jackson অন্তর্ভুক্ত করতে jackson-databind, jackson-core, এবং jackson-annotations ডিপেনডেন্সি ব্যবহার করা হয়।
Jackson এর প্রয়োজনীয় ডিপেনডেন্সি
Maven প্রজেক্টের pom.xml ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করুন:
<dependencies>
<!-- Jackson Databind: Serialization/Deserialization -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version> <!-- সর্বশেষ ভার্সন -->
</dependency>
<!-- Jackson Core: JSON প্রসেসিং -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.15.2</version>
</dependency>
<!-- Jackson Annotations: বিভিন্ন অ্যানোটেশন -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.15.2</version>
</dependency>
</dependencies>
Jackson এর প্রধান মডিউল সমূহ
Jackson বিভিন্ন কাজের জন্য পৃথক মডিউল সরবরাহ করে:
| মডিউল | বিবরণ |
|---|---|
jackson-databind | JSON Serialization এবং Deserialization এর মূল কাজ। |
jackson-core | JSON প্রক্রিয়াকরণের জন্য নিম্ন-স্তরের API। |
jackson-annotations | Jackson এর অ্যানোটেশন যেমন @JsonProperty, @JsonIgnore ইত্যাদি। |
jackson-module-jaxb | JAXB অ্যানোটেশনগুলোর সমর্থনের জন্য। |
jackson-module-kotlin | Kotlin এর জন্য বিশেষ সমর্থন। |
Jackson অন্তর্ভুক্ত করার উদাহরণ
Step 1: Maven প্রজেক্ট সেটআপ
- Maven প্রজেক্ট তৈরি করুন।
pom.xmlফাইলে উপরের ডিপেনডেন্সি যোগ করুন।- Maven প্রজেক্ট রিফ্রেশ করুন (
mvn clean installচালান)।
Step 2: JSON Serialization এবং Deserialization এর উদাহরণ
মডেল ক্লাস তৈরি
public class User {
private String name;
private int age;
private String email;
// Getters and 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;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Serialization (Java Object থেকে JSON)
import com.fasterxml.jackson.databind.ObjectMapper;
public class SerializationExample {
public static void main(String[] args) throws Exception {
User user = new User();
user.setName("Alice");
user.setAge(30);
user.setEmail("alice@example.com");
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(user);
System.out.println("Serialized JSON: " + json);
}
}
Output:
{"name":"Alice","age":30,"email":"alice@example.com"}
Deserialization (JSON থেকে Java Object)
import com.fasterxml.jackson.databind.ObjectMapper;
public class DeserializationExample {
public static void main(String[] args) throws Exception {
String json = "{\"name\":\"Bob\",\"age\":25,\"email\":\"bob@example.com\"}";
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(json, User.class);
System.out.println("Name: " + user.getName());
System.out.println("Age: " + user.getAge());
System.out.println("Email: " + user.getEmail());
}
}
Output:
Name: Bob
Age: 25
Email: bob@example.com
Jackson অ্যানোটেশন সমর্থন
Jackson এর jackson-annotations মডিউলটি ব্যবহার করে JSON প্রক্রিয়াকরণকে কাস্টমাইজ করা যায়। প্রধান অ্যানোটেশনসমূহ:
1. @JsonProperty
import com.fasterxml.jackson.annotation.JsonProperty;
public class User {
@JsonProperty("user_name")
private String name;
private int age;
@JsonProperty("user_email")
private String email;
// Getters and Setters
}
Serialized Output:
{"user_name":"Alice","age":30,"user_email":"alice@example.com"}
2. @JsonIgnore
import com.fasterxml.jackson.annotation.JsonIgnore;
public class User {
private String name;
@JsonIgnore
private String password;
// Getters and Setters
}
Serialized Output:
{"name":"Alice"}
3. @JsonInclude
import com.fasterxml.jackson.annotation.JsonInclude;
@JsonInclude(JsonInclude.Include.NON_NULL)
public class User {
private String name;
private String email;
// Getters and Setters
}
Serialized Output (If email is null):
{"name":"Alice"}
- Jackson এর মাধ্যমে JSON প্রক্রিয়াকরণ অত্যন্ত সহজ এবং কার্যকর।
- Maven ব্যবহার করে
jackson-databind,jackson-core, এবংjackson-annotationsঅন্তর্ভুক্ত করে JSON Serialization/Deserialization পরিচালনা করা যায়। - Jackson Annotations ব্যবহার করে JSON আউটপুট কাস্টমাইজ করা সম্ভব।
- Spring Boot প্রকল্পে Jackson ডিফল্টভাবে অন্তর্ভুক্ত থাকে, এবং এটি REST API JSON প্রক্রিয়াকরণকে সহজ করে।
Read more