Десериализация списка, содержащего XML, в POJO - PullRequest
0 голосов
/ 15 мая 2018

Мой 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;

}

Теперь я запускаю код и получаю нулевой указатель.Когда я отлаживаю код, я вижу, что объект актив был создан и что поле ID было извлечено из XML.Однако объект TOV равен нулю.Требуется ли какая-то метка, чтобы сообщить Джексону, что Java-объект TOV отображается на XML-объект?Кроме того, сработает ли credit и castCrew внутри java List?

1 Ответ

0 голосов
/ 15 мая 2018

В классе активов я пропустил

@JacksonXmlProperty(localName = "TOV")

поверх

@Getter @Setter private TOV TOV;

И к списку мне нужно было добавить

@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "castCrew")

Обе проблемы были связаны с необходимостью указать, какое поле в Java должно быть отображено в XML

...