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

时间:2018-06-27 11:56:37

标签: java jackson

这是我尝试过的方法,但是我的名字字段为空

@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);
      }
}

让我说我要映射到上面的POJO的json,问题是我想同时使用@JsonProperty(“ name”)作为name和firstName,但是将firstName设置略有不同。

1 个答案:

答案 0 :(得分:1)

您可以使用“ JsonSetter”注释

@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);
      }
}