যদি জাভা অবজেক্টে এমন ফিল্ড থাকে যা সিরিয়ালাইজ করতে না চাই, তবে জ্যাকসন লাইব্রেরিতে @JsonIgnore অ্যানোটেশন ব্যবহার করতে পারি। @JsonIgnore ফিল্ড লেভেলে ব্যবহার করা যেতে পারে, সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশনের সময় ফিল্ড ইগনোর করার জন্য।
সিনট্যাক্স
public @interface JsonIgnore
উদাহরণ
import java.io.*;
import java.util.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.annotation.*;
public class JsonIgnoreAnnotationTest {
public static void main(String args[]) throws JsonGenerationException, JsonMappingException, IOException {
Employee emp = new Employee();
emp.setFirstName("Raja");
emp.setLastName("Ramesh");
emp.setEmpId(120);
emp.getTechnologies().add("Java");
emp.getTechnologies().add("Scala");
emp.getTechnologies().add("Python");
ObjectMapper mapper = new ObjectMapper();
mapper.writerWithDefaultPrettyPrinter().writeValue(System.out, emp);
}
}
// Employee ক্লাস
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({"firstName", "lastName", "technologies", "empId"})
class Employee {
@JsonProperty("EMPLOYEE_ID")
private int empId;
@JsonProperty("EMPLOYEE_FIRST_NAME")
private String firstName;
@JsonProperty("EMPLOYEE_LAST_NAME")
private String lastName;
@JsonIgnore
private List<String> technologies = new ArrayList<>();
public int getEmpId() { return empId; }
public void setEmpId(int empId) { this.empId = empId; }
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; }
public List<String> getTechnologies() { return technologies; }
public void setTechnologies(List<String> technologies) { this.technologies = technologies; }
}
আউটপুট
{
"EMPLOYEE_FIRST_NAME" : "Raja",
"EMPLOYEE_LAST_NAME" : "Ramesh",
"EMPLOYEE_ID" : 120
}
ব্যাখ্যা: technologies ফিল্ডে @JsonIgnore থাকায় সেটি JSON আউটপুটে আসেনি। এটি সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশন দুটোই কাজে থাকে। গেটার/সেটার মেথডেও এটি ব্যবহার করা যায়।