কম্পিউটার টিউটোরিয়াল

জাভাতে JSON সিরিয়ালাইজেশনের সময় ফিল্ড ইগনোর করা (Jackson)

যদি জাভা অবজেক্টে এমন ফিল্ড থাকে যা সিরিয়ালাইজ করতে না চাই, তবে জ্যাকসন লাইব্রেরিতে @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 আউটপুটে আসেনি। এটি সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশন দুটোই কাজে থাকে। গেটার/সেটার মেথডেও এটি ব্যবহার করা যায়।

  1. জাভাতে JSON অবজেক্ট ফাইলে লিখুন

  2. জাভাতে JSON স্ট্রিং কে JSON অবজেক্টে রূপান্তর করুন

  3. জাভাতে invokeLater() মেথড কল করার পদ্ধতি

  4. জাভাতে JComboBox-এ আইটেমগুলো সর্ট করা