Jackson হল জাভার জন্য একটি লাইব্রেরি যার খুব শক্তিশালী ডেটা বাইন্ডিং ক্ষমতা রয়েছে এবং কাস্টম জাভা অবজেক্টগুলিকে JSON-এ সিরিয়ালাইজ করতে এবং JSON-কে জাভা অবজেক্টে ডিসিরিয়ালাইজ করার জন্য একটি ফ্রেমওয়ার্ক প্রদান করে। Jackson লাইব্রেরি @JsonInclude এনোটেশন প্রদান করে যা সিরিয়ালাইজেশনের সময় তাদের মানের উপর ভিত্তি করে একটি ক্লাস সম্পূর্ণরূপে বা এর الفردية ফিল্ডগুলোর সিরিয়ালাইজেশন নিয়ন্ত্রণ করে।
@JsonInclude এনোটেশন-এর নিচের দুটি ভ্যালু থাকে:
- Include.NON_NULL: নির্দেশ করে যে শুধু নন-নাল ভ্যালুযুক্ত প্রোপার্টিগুলি JSON-এ অন্তর্ভুক্ত হবে।
- Include.NON_EMPTY: নির্দেশ করে যে শুধু নন-এম্পটি প্রোপার্টিগুলি JSON-এ অন্তর্ভুক্ত হবে।
উদাহরণ
import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
public class IgnoreNullAndEmptyFieldTest {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
Employee employee = new Employee(115, null, ""); // নাল এবং খালি ফিল্ড পাস করা
String result = mapper.writeValueAsString(employee);
System.out.println(result);
}
}
// Employee ক্লাস
class Employee {
private int id;
@JsonInclude(Include.NON_NULL)
private String firstName;
@JsonInclude(Include.NON_EMPTY)
private String lastName;
public Employee(int id, String firstName, String lastName) {
super();
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
আউটপুট
{
"id" : 115
}