簡體   English   中英

Jaxb-自定義HashMap映射

[英]Jaxb - Custom HashMap mapping

<mapdata>
  <media1>
    <name>media1</name>
    <items>
      <key>1</key>
      <width>100</width>
      <height>150</height>
    </items>
    <items>
      <key>2</key>
      <width>100</width>
      <height>150</height>
    </items>
  </media1>
  <media2>
    <name>media2</name>
    <items>
      <key>1</key>
      <width>100</width>
      <height>150</height>
    </items>
  </media2>
</mapdata>

我想使用JaxB將上面的xml轉換為下面的hashMap對象。 請幫我。

public class MapData{
    protected Map<String, Media> mapdata;

}

public class Media {

    private String name;

    private List<MediaDetail> items = new ArrayList<>();

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<MediaDetail> getItems() {
        return items;
    }

    public void setItems(List<MediaDetail> items) {
        this.items = items;
    }
}

媒體像media1,media2,media3等一樣增長。由於media標簽的標簽不可預測。 我無法檢測到使用標簽名。 我需要像媒體標簽一樣映射為鍵,並將細節保留為涉及名稱和項目列表的值對象。 請讓我知道是否有可能實現。

從XML創建您XSD,通過像聯機源在這里

現在您可以使用生成pojo。 Jaxb會自己生成pojos,稍后您可以按照想要獲取字段的方式創建類,然后將其設置為所需的字段。 如果您正在使用maven,則可以使用其他方法來創建pojo而不是使用terminal。

這樣做並非易事。 您可能會使用某些MapAdapter或其他類型的適配器。

您將需要對.java類進行更改。 放置一些注釋。

甚至您將需要稍微更改xml

盡管如此,我認為你可以找到你所需要的一切這個文章。

祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM