Jackson Annotations - @JsonCreator
@JsonCreatorđược sử dụng để tinh chỉnh phương thức xây dựng hoặc nhà máy được sử dụng trong quá trình giải mã hóa. Chúng tôi cũng sẽ sử dụng @JsonProperty để đạt được điều tương tự. Trong ví dụ dưới đây, chúng tôi đang đối sánh một json với định dạng khác với lớp của chúng tôi bằng cách xác định các tên thuộc tính bắt buộc.
Ví dụ @JsonCreator
import java.io.IOException;
import java.text.ParseException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonTester {
public static void main(String args[]) throws ParseException{
String json = "{\"id\":1,\"theName\":\"Mark\"}";
ObjectMapper mapper = new ObjectMapper();
try {
Student student = mapper
.readerFor(Student.class)
.readValue(json);
System.out.println(student.rollNo +", " + student.name);
}
catch (IOException e) {
e.printStackTrace();
}
}
}
class Student {
public String name;
public int rollNo;
@JsonCreator
public Student(@JsonProperty("theName") String name, @JsonProperty("id") int rollNo){
this.name = name;
this.rollNo = rollNo;
}
}
Đầu ra
1, Mark