1

Java POJO への初期マッピングを介して、Jackson の XML バインディングを使用して XML を Java List に変換しています。私が書いたものは機能しますが、ジャクソンを正しく使用しているとは思いません。

私はこの醜い 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 クラスを取得します。私は疑問に思っています、アプローチは正しいですか?セッターが追加を行っているのは好きではありませんが、私が試したことはすべてうまくいきませんでした。

4

1 に答える 1

1

POJO は次のようにシンプルにできます。

public class Groups {
    private List<String> groups;

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

MapperFeature.USE_GETTERS_AS_SETTERS (デフォルトで有効)を使用しているため、問題なく動作します。

于 2014-12-05T22:41:48.943 に答える