我有一个 POJO,其中有一个字段:
public class Media {
private Asset asset;
}
将 json 响应解析到此资产 POJO 中时,一切正常。但该资产附带的密钥略有不同。它可以是:
@JsonProperty("cover_asset")
or
@JsonProperty("asset")
有没有办法注释 POJO 以识别这种情况并反序列化到同一字段中。他们两个不可能出现在同一个回复中。
好吧,因为您只关心反序列化,@JsonAlias http://static.javadoc.io/com.fasterxml.jackson.core/jackson-annotations/2.9.3/com/fasterxml/jackson/annotation/JsonAlias.html引入于2.9
非常适合这种情况。你可以这样做:
@JsonAlias({"cover_asset", "asset"})
private Asset asset;
@JsonAlias docs http://static.javadoc.io/com.fasterxml.jackson.core/jackson-annotations/2.9.3/com/fasterxml/jackson/annotation/JsonAlias.html:
可用于定义一个或多个替代名称的注释
对于一个属性,在反序列化期间接受作为替代
官方名字。 POJO 期间也会暴露别名信息
内省,但在序列化期间没有效果,其中主要
名称始终被使用。
注意:确保更新所有相关依赖项(annotations
, core
, databind
)如果您正在使用它们。刚刚更新annotations
没有其他人给我抛出运行时错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)