使用Jackson XML绑定将列表映射到Pojo

时间:2014-01-02 21:14:03

标签: java xml jackson xml-binding

我正在使用Jackson的XML绑定将XML转换为Java List,通过初始映射到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;
   }
}

以下是我调用Jackson的XmlMapper的方法。

public List<String> getListOfGroups(String xmlDoc) {
   XmlMapper mapper = new XmlMapper();
   Groups groups = mapper.readValue(xmlDoc, Groups.class);
   return groups.getGroups();
}

这实际上是因为我需要它才能工作。我得到一个Groups类,其中列表填充了我期望的元素。我在想,方法是否正确?我不喜欢我有一个setter做一个添加,但我尝试过的一切都没有用。

1 个答案:

答案 0 :(得分:1)

你的POJO可能很简单:

public class Groups {
    private List<String> groups;

    public List<String> getGroups() { 
        return this.groups;
    }
}

由于您使用MapperFeature.USE_GETTERS_AS_SETTERS(默认情况下已启用),因此可以正常工作。