@JsonProperty chú thích có thể được sử dụng để chỉ ra tên thuộc tính trong JSON. Chú thích này có thể được sử dụng cho hàm tạo hoặc phương pháp xuất xưởng . @JsonCreator chú thích hữu ích trong các trường hợp @JsonSetter không thể sử dụng chú thích. Ví dụ:các đối tượng không thay đổi không có bất kỳ phương thức setter nào, vì vậy chúng cần các giá trị ban đầu được đưa vào hàm tạo.
@JsonProperty - Khối mã lệnh
Ví dụ
import com.fasterxml.jackson.annotation.*; import java.io.IOException; import com.fasterxml.jackson.databind.*; public class JsonCreatorTest1 { public static void main(String[] args) throws IOException { ObjectMapper om = new ObjectMapper(); String jsonString = "{\"id\":\"101\", \"fullname\":\"Ravi Chandra\", \"location\":\"Pune\"}"; System.out.println("JSON: " + jsonString); Customer customer = om.readValue(jsonString, Customer.class); System.out.println(customer); } } // Customer class class Customer { private String id; private String name; private String address; public Customer() { } @JsonCreator public Customer( @JsonProperty("id") String id, @JsonProperty("fullname") String name, @JsonProperty("location") String address) { this.id = id; this.name = name; this.address = address; } @Override public String toString() { return "Customer [id=" + id + ", name=" + name + ", address=" + address + "]"; } }
Đầu ra
JSON: {"id":"101", "fullname":"Ravi Chandra", "location":"Pune"} Customer [id=101, name=Ravi Chandra, address=Pune]
@ JsonCreator - Phương pháp ban đầu
Ví dụ
import com.fasterxml.jackson.annotation.*; import java.io.IOException; import com.fasterxml.jackson.databind.*; public class JsonCreatorTest2 { public static void main(String[] args) throws IOException { ObjectMapper mapper = new ObjectMapper(); String jsonString = "{\"id\":\"102\", \"fullname\":\"Raja Ramesh\", \"location\":\"Hyderabad\"}"; System.out.println("JSON: " + jsonString); Customer customer = mapper.readValue(jsonString, Customer.class); System.out.println(customer); } } // Customer class class Customer { private String id; private String name; private String address; public Customer() { } @JsonCreator public static Customer createCustomer( @JsonProperty("id") String id, @JsonProperty("fullname") String name, @JsonProperty("location") String address) { Customer customer = new Customer(); customer.id = id; customer.name = name; customer.address = address; return customer; } @Override public String toString() { return "Customer [id=" + id + ", name=" + name + ", address=" + address + "]"; } }
Đầu ra
JSON: {"id":"101", "fullname":"Raja Ramesh", "location":"Hyderabad"} Customer [id=102, name=Raja Ramesh, address=Hyderabad]