簡體   English   中英

如何編寫POJO來編組兩個對象列表?

[英]How to write POJO for Marshalling two list of objects?

<MyRoot>
    <Person>
        <Name>Joe</Name>
        <Age>20</Age>
    </Person>   
    <Address>
        <HouseName>Joe</HouseName>
        <Place>Delhi</Place>
    </Address>
    <Person>
        <Name>James</Name>
        <Age>21</Age>
    </Person>   
    <Address>
        <HouseName>Joe</HouseName>
        <Place>Mumbai</Place>
    </Address>
</MyRoot>

從xml上方,您可以看到person和address標記未包裝在wrapper標記中。 我想使用相同格式的JAXB生成xml。 沒有包裝標簽,我不知道該怎么做。

您是否正在考慮創建包含“人員”列表和“地址”列表的java對象?

public class MyRootObject {
   private List<Person> persons;
   private List<Address> addresses;
}

如果以上是您打算執行的操作,請注意XML對象將更改。

如果您真的想保留<Person> <Address> <Person> <Address>類的混合序列(正如您在對@Vankuisher答案的評論中所說的),那么您需要將PersonAddress不在2個單獨的位置。 List ,但一起在同一 List

為此, PersonAddress必須是公共超類的子類(例如, class Person extends Itemclass Address extends Item )。 然后,使用@XmlElements批注定義XML元素名稱和Java類之間的映射:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "MyRoot")
public class MyRoot {

    @XmlElements({
        @XmlElement(name = "Address", type = Address.class),
        @XmlElement(name = "Person", type = Person.class)
    })
    private List<Item> items;

    // public getters and setters (omitted here for brevity)
}

當編組這樣的MyRoot對象時,您將獲得XML輸出,該輸出具有與List<Item>給定的相同項目順序。

暫無
暫無

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

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