我有一个POJO,其中包含一个字段:
public class Media { private Asset asset; }
将json响应解析到此资产POJO时,一切工作正常。但是此资产随附的密钥略有不同。可以是:
@JsonProperty("cover_asset")
要么
@JsonProperty("asset")
有没有一种方法可以注释POJO以识别这种情况并反序列化到同一字段中。他们不可能出现在相同的响应中。
好吧,因为只有反序列化才是您关心的问题,所以@JsonAlias引入in十分2.9适合这种情况。您可以执行以下操作:
@JsonAlias
2.9
@JsonAlias({"cover_asset", "asset"}) private Asset asset;
@JsonAliasdocs:
可用于定义属性的一个或多个替代名称的注释,在反序列化期间可以接受为正式名称的替代。别名信息也在POJO内省期间公开,但在始终使用主名的序列化过程中无效。
注:请确保您更新所有相关的依赖关系(annotations,core,databind)如果你使用的是他们。在annotations没有其他人的情况下进行更新会引发运行时错误。
annotations
core
databind