Использование привязки Jackson XML для сопоставления списков с Pojo
Я использую привязку XML Джексона для преобразования XML в список Java с помощью первоначального сопоставления с Java POJO. То, что я написал, работает, но я не думаю, что правильно использую Джексона.
Я застрял с этим уродливым XML:
<groups>
<groups>One</groups>
<groups>Two</groups>
<groups>Three</groups>
</groups>
Вот Java POJO, который я использую. Обратите внимание setGroups(String)
Метод фактически добавляет в список.
public class Groups {
private List<String> groups = new ArrayList<String>();
public void setGroups(String group) {
groups.add(group);
}
public List<String> getGroups() {
return this.groups;
}
}
Вот как я вызываю XmlMapper Джексона.
public List<String> getListOfGroups(String xmlDoc) {
XmlMapper mapper = new XmlMapper();
Groups groups = mapper.readValue(xmlDoc, Groups.class);
return groups.getGroups();
}
Это на самом деле работает, как мне нужно, чтобы работать. Я получаю класс Groups со списком, заполненным ожидаемыми элементами. Мне интересно, правильный ли подход? Мне не нравится, что у меня есть сеттер, который делает добавление, но все, что я пробовал, не сработало.
1 ответ
Ваш POJO может быть простым, как это:
public class Groups {
private List<String> groups;
public List<String> getGroups() {
return this.groups;
}
}
Это будет работать нормально, так как вы используете MapperFeature.USE_GETTERS_AS_SETTERS (по умолчанию включено).