可以是对象或字符串的id对象的Java Jackson反序列化

可以是对象或字符串的id对象的Java Jackson反序列化,java,annotations,jackson,Java,Annotations,Jackson,我正在使用Jackson序列化id对象。这些对象只有一个id字段。当前代码在该字段上使用@JsonProperty进行序列化。序列化如下所示: “myId”:{ “id”:“12345” } 我希望在getter上使用@JsonValue,以便将来的序列化看起来像: “myId”:“12345” 我需要使它与已经序列化的对象向后兼容。我是否需要使用自定义反序列化程序,或者是否有一种基于注释的策略可以实现这一点 任何建议都将不胜感激。可以创建可以从JSON对象和JSON标量反序列化的POJO。例如

我正在使用Jackson序列化id对象。这些对象只有一个id字段。当前代码在该字段上使用@JsonProperty进行序列化。序列化如下所示:

“myId”:{ “id”:“12345” }

我希望在getter上使用@JsonValue,以便将来的序列化看起来像:

“myId”:“12345”

我需要使它与已经序列化的对象向后兼容。我是否需要使用自定义反序列化程序,或者是否有一种基于注释的策略可以实现这一点


任何建议都将不胜感激。

可以创建可以从JSON对象和JSON标量反序列化的POJO。例如:

public class Id {
  @JsonProperty String id;

  @JsonCreator
  public Id(String id) {
      this.id = id;
  }
}
至于序列化,您可以选择作为对象(只是getter),也可以选择作为字符串,后者使用
@JsonValue