使用 Jackson 序列化时的前缀字段

Wit*_*tle 2 java json jackson

每当对象被序列化时,我想在一个字段前加上一个字符串值。有没有办法用杰克逊做到这一点?我想在类名前加上 id 前缀。

public class CarClass {
  public Long id;
  public String name;
  ......
}
Run Code Online (Sandbox Code Playgroud)

示例类将是...

CarClass car1 = new CarClass (1,"First car");
Run Code Online (Sandbox Code Playgroud)

我希望它像这样被 serilized:

{ 
  "id": "carClass-1",
  "name": "First car"
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*bel 5

试试 JsonGetter 注释:

public class CarClass {
  public Long id;
  public String name;
  
  @JsonGetter("id")
  public String getPrefixedId() {
    return "carClass-" + id;
  }
}
Run Code Online (Sandbox Code Playgroud)

杰克逊注解