The @JsonAnyGetter৷ টীকা একটি মানচিত্র ব্যবহার করতে সক্ষম করে একটি ধারক হিসাবে বৈশিষ্ট্যগুলির জন্য যা আমরা JSON এবং @JsonAnySetter-এ সিরিয়ালাইজ করতে চাই টীকা জ্যাকসনকে সমস্ত অচেনা ক্ষেত্র-এর জন্য একই সেটার পদ্ধতি কল করার নির্দেশ দেয় JSON অবজেক্টে, যার মানে হল যে সমস্ত ক্ষেত্র যা ইতিমধ্যেই জাভা অবজেক্টে একটি প্রপার্টি বা সেটার পদ্ধতিতে ম্যাপ করা হয়নি।
সিনট্যাক্স
public @interface JsonAnyGetter public @interface JsonAnyGetter
উদাহরণ
import java.io.*;
import java.util.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.annotation.*;
public class JsonAnyGetterAndJsonAnySetterTest {
public static void main(String args[]) throws JsonGenerationException, JsonMappingException, IOException {
Employee emp1 = new Employee();
emp1.setFirstName("Adithya");
emp1.setLastName("Sai");
emp1.setEmpId(125);
emp1.getAdditionalInformation().put("technology1", "Machine Learning");
emp1.getAdditionalInformation().put("technology2", "Robotics");
ObjectMapper mapper = new ObjectMapper();
String jsonStr = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(emp1);
System.out.println(jsonStr);
System.out.println("Deserializing JSON to Object:");
Employee emp2 = mapper.readValue(jsonStr, Employee.class);
System.out.println("id : " + emp2.getEmpId());
System.out.println("firstName : " + emp2.getFirstName());
System.out.println("lastName : " + emp2.getLastName());
System.out.println("Additional information : " + emp2.getAdditionalInformation());
}
}
// Employee class
@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;
private Map<String, String> additionalInformation = new HashMap<>();
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;
}
@JsonAnyGetter
public Map<String, String> getAdditionalInformation() {
return additionalInformation;
}
public void setAdditionalInformation(Map<String, String> additionalInformation) {
this.additionalInformation = additionalInformation;
}
@JsonAnySetter
public void setAdditionalProperty(final String name, final String value) {
this.additionalInformation.put(name, value);
}
} আউটপুট
{
"EMPLOYEE_FIRST_NAME" : "Adithya",
"EMPLOYEE_LAST_NAME" : "Sai",
"EMPLOYEE_ID" : 125,
"technology1" : "Machine Learning",
"technology2" : "Robotics"
}
Deserializing JSON to Object:
id : 125
firstName : Adithya
lastName : Sai
Additional information : {technology1=Machine Learning, technology2=Robotics}