我的XML看起来像这样:
<asset id="35465146">
<TOV artist="" music="0" episodeNumber="">
<credit biography="" />
<credit biography="" />
<credit biography="" />
<credit biography="" />
<castCrew role="Actor" name="John C. Reilly"/>
<castCrew role="Director" name="Keith Scholey"/>
<castCrew role="Director" name="Alastair Fothergill"/>
<castCrew role="Director" name="Adam Chapman"/>
</TOV>
</asset>
我的资产POJO看起来像这样:
public class asset {
@Getter @Setter private String id;
@Getter @Setter private TOV TOV;
}
和TOV类看起来像这样:
public class TOV {
@Getter @Setter private String episodeNumber;
@Getter @Setter private String music;
@Getter @Setter private String artist;
@Getter @Setter private List<credit> credit;
@Getter @Setter private List<castCrew> castCrew;
}
现在,我运行代码并获得一个空指针。 当我调试代码时,我看到已经创建了资产对象,并且已经从XML中提取了ID字段。但是,TOV对象等于null。我是否需要某种标签来告诉Jackson TOV java对象是否映射到XML?另外,在java List中有信用和castCrew吗?
答案 0 :(得分:0)
在我缺少的资产类中
@JacksonXmlProperty(localName = "TOV")
在
之上@Getter @Setter private TOV TOV;
对于列表我需要添加
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "castCrew")
这两个问题都与必须在XML中指定它应该映射到哪个字段
有关