使用Jackson在Java中自定义反序列化JSON FIELD?

jan*_*sen 9 java json jackson

给出一个像这样的简单实体类

public class User
{
  @JsonProperty
  public Calendar createdOn;

  @JsonProperty
  public String name;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让我连接到jackson流API来自定义反序列化只有createdOn字段?如果没有,那将来有可能这样吗?

public class User
{
  @JsonProperty
  @JsonConverter(MyCustomCalendarConverter.class)
  public Calendar createdOn;

  @JsonProperty
  public String name;
}
Run Code Online (Sandbox Code Playgroud)

看来我可以自定义反序列化整个实体.我只是好奇是否有一种方法可以一次自定义反序列化,例如,自定义解析特定日期格式,或者将值数组读入自定义实体等,同时让Jackson通常反序列化实体的其余部分.

Sta*_*Man 2

您可以使用 @JsonSerialize 定义自定义序列化特定字段:

@JsonSerialize(using=MuCustomCalendarConverter.class)
Run Code Online (Sandbox Code Playgroud)