java list 包含 list_Java 对象中含有 List

Java 对象中含有 List

商品信息中的有很多小项,所以使用List类型。

@XmlAccessorType(XmlAccessType.FIELD)

public class Product {

@XmlAttribute

private String id;

private List item;

// setters,getters

}

测试一下。

@Test

public void test1() throws JAXBException {

Product product = new Product();

product.setId("1301");

product.setItem(Arrays.asList("ItemA","ItemB","ItemC"));

JAXB.marshal(product, System.out);

}

XML结果。

ItemA

ItemB

ItemC

这是最普通的一种转化方式。如果需要改变XML的Element的名称,可以设置@XmlElement(name = "Item")。

Java 对象中含有 List 、XML被包裹

如果想让生成的XML外围被包裹起来,可以加上注解@XmlElementWrapper。

@XmlRootElement

@XmlAccessorType(XmlAccessType.FIELD)

public class Product2 {

@XmlAttribute

private String id;

@XmlElementWrapper(name = "Items")

private List item;

// setters,getters

}

测试一下。

@Test

public void test2() throws JAXBException {

Product2 product = new Product2();

product.setId("1302");

product.setItem(Arrays.asList("ItemA","ItemB","ItemC"));

JAXB.marshal(product, System.out);

}

XML结果。

ItemA

ItemB

ItemC

可以看到,item 有了父标签Items

Java对象含有非简单类型的List

商品信息中的小项还含有属性。

@XmlRootElement

@XmlAccessorType(XmlAccessType.FIELD)

public class Product3 {

@XmlAttribute

private String id;

private List item;

// setters,getters

}

每一个小项都更加复杂,注意这里的 name 使用的注解@XmlValue。

@XmlAccessorType(XmlAccessType.FIELD)

public class Item {

@XmlAttribute

private String id;

@XmlValue

private String name;

// setters,getters

}

测试一下。

@Test

public void test3() throws JAXBException {

Product3 product = new Product3();

product.setId("1303");

product.setItem(Arrays.asList(new Item("13031","ItemA"),new Item("13032","ItemB"),new Item("13033","ItemC")));

JAXB.marshal(product, System.out);

}

生成的XML。

ItemA

ItemB

ItemC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值