将一个 JSON 属性映射到 Java 中的两个不同字段(杰克逊)



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

@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,问题是我想对名称和名字都使用 @JsonProperty("name"(,但设置名字略有不同。

您可以使用"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);
}
}

最新更新