English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Когда использовать аннотацию @ConstructorProperties в Jackson Java?

@ConstructorPropertiesаннотация начинается отjava.beanмаленькая упаковка, используемая для десериализации JSON в объекты Java комментировать конструкцию. Эта аннотация начинается отверсия Jackson 2.7начинает поддерживать. Работа этой аннотации очень проста, вместо того чтобы комментировать каждый параметр конструктора, мы можем предоставить имена свойств для каждого параметра конструктора массива.

грамматика

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

Пример

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);
   {}
{}
// класс сотрудников
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;
   {}
{}

Результат вывода

{
 "empName": "Raja",
 "empId": 115
{}
Вам может понравиться