Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Khi nào sử dụng annotation @ConstructorProperties với Jackson trong Java

Annotation @ConstructorProperties từ gói java.beans được dùng để deserialize JSON thành đối tượng Java qua constructor được annotate. Annotation này được hỗ trợ từ Jackson 2.7 trở đi. Cách thức hoạt động rất đơn giản: thay vì annotate từng tham số trong constructor, chúng ta có thể cung cấp một mảng tên thuộc tính cho từng tham số của constructor.

Cú pháp

@Documented @Target(value=CONSTRUCTOR) @Retention(value=RUNTIME) public @interface ConstructorProperties

Ví dụ

import com.fasterxml.jackson.databind.ObjectMapper;
import java.beans.ConstructorProperties;

public class ConstructorPropertiesAnnotationTest {
    public static void main(String args[]) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        Employee emp = new Employee(115, "Raja");
        String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(emp);
        System.out.println(jsonString);
    }
}

// Employee class
class Employee {
    private final int id;
    private final String name;
    
    @ConstructorProperties({"id", "name"})
    public Employee(int id, String name) {
        this.id = id;
        this.name = name;
    }
    
    public int getEmpId() {
        return id;
    }
    
    public String getEmpName() {
        return name;
    }
}

Kết quả

{
  "empName" : "Raja",
  "empId" : 115
}