W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
一般來說,一個(gè)Order不止含有一個(gè)Product,就需要使用到 List 了。
@Test
public void test2() throws JAXBException {
Product p1 = new Product();
p1.setId("11021");
p1.setName("Apple");
Product p2 = new Product();
p2.setId("11022");
p2.setName("Banana");
List<Product> list = Arrays.asList(p1,p2);
Order2 order = new Order2();
order.setId("1102");
order.setPrice(45.67);
order.setProduct(list);
JAXBContext context = JAXBContext.newInstance(Order2.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(order, System.out);
}
對(duì)象 Order2 的第三個(gè)字段是 List 類型。Product和上例中的一樣。
@XmlRootElement(name = "Order")
public class Order2 {
private String id;
private Double price;
private List<Product> product;
//setters, getters
}
生成的XML中 product 重復(fù)出現(xiàn)多次。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Order>
<id>1102</id>
<price>45.67</price>
<product id="11021">
<name>Apple</name>
</product>
<product id="11022">
<name>Banana</name>
</product>
</Order>
上例中的Product是散落著的數(shù)據(jù),有時(shí)候可能需要將其包裹起來,這時(shí)只需要改動(dòng) Order 對(duì)象。
@XmlRootElement(name = "Order")
@XmlAccessorType(XmlAccessType.FIELD)
public class Order3 {
private String id;
private Double price;
@XmlElementWrapper(name = "Products")
private List<Product> product;
編組過程和上例中的相同,生成的XML包含了一個(gè) Products 包裹著所有的 Product
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Order>
<id>1102</id>
<price>45.67</price>
<Products>
<product id="11021">
<name>Apple</name>
</product>
<product id="11022">
<name>Banana</name>
</product>
</Products>
</Order>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: