将一个json属性映射到java中的两个不同字段(jackson)

将一个json属性映射到java中的两个不同字段(jackson),java,jackson,Java,Jackson,这是我尝试过的,但firstName字段为null @Data @NoArgsConstractor @AllArgsConstructor public class User{ @JsonProperty("name") private String name; @JsonProperty("age") private int age; private String firstName; public void se

这是我尝试过的,但firstName字段为null

@Data
@NoArgsConstractor
@AllArgsConstructor
public class User{

      @JsonProperty("name")
      private String name;
      @JsonProperty("age")
      private int age;

      private String firstName;

      public void setFirstName(String name){
        this.firstName = this.name.substring(4,10);
      }
}
假设我有一个json,我想映射到上面的POJO,问题是我想对name和firstName使用@JsonProperty(“name”),但firstName的设置略有不同

可以使用“”注释

@Data
@NoArgsConstractor
@AllArgsConstructor
public class User{

      private String name;
      private String firstName;

      @JsonProperty("age")
      private int age;            

      @JsonSetter("name")
      public void setNames(String name){
        this.name = name;
        this.firstName = this.name.substring(4,10);
      }
}

1.是否在代码中调用setFirstName()函数?2.我不会给firstname分配子字符串,因为名字的大小可能会大不相同。不,这只是一个例子,我想做的是说保存首字母,但使用name字段。或者可能正在保存它的截断版本。注释已取消弃用