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());
}
}
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"firstName"
,
"lastName"
,
"technologies"
,
"empId"
})
class
Employee {
@JsonProperty(
"EMPLOYEE_ID"
)
private
int empId;
@JsonProperty(
"EMPLOYEE_FIRST_NAME"
)<strong>
</strong>
private
String firstName;
<strong> </strong> @JsonProperty(
"EMPLOYEE_LAST_NAME"
)<strong>
</strong>
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;
}
<strong> </strong> @JsonAnyGetter<strong>
</strong>
public
Map<String, String> getAdditionalInformation() {
return
additionalInformation;
}
public
void setAdditionalInformation(Map<String, String> additionalInformation) {
this.additionalInformation = additionalInformation;
}
<strong> </strong>@JsonAnySetter
public
void setAdditionalProperty(
final
String name,
final
String value) {
this.additionalInformation.put(name, value);
}
}