Java 可以是对象或字符串的 id 对象的 Jackson 反序列化
Java Jackson deserialization for id object that could be object or string
我正在使用 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;
}
}
关于序列化,您可以选择 as-object(只是 getter)或 as-String,后者使用 @JsonValue
。
我正在使用 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;
}
}
关于序列化,您可以选择 as-object(只是 getter)或 as-String,后者使用 @JsonValue
。