webservice(四)_JAXB

一、简介

JAXB:Java API For XML Binding
作用:实现POJO对象和XML之间的相互转换

二、实例

POJO对象:

@XmlRootElement
public class book {

	private long id;
	private String bookName;
	private double price;
	
	public book() {}
	
	public book(long id, String bookName, double price) {
		super();
		this.id = id;
		this.bookName = bookName;
		this.price = price;
	}
		
	@Override
	public String toString() {
		return "book [id=" + id + ", bookName=" + bookName + ", price=" + price + "]";
	}

	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public String getBookName() {
		return bookName;
	}
	public void setBookName(String bookName) {
		this.bookName = bookName;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}

}

2.1 POJO对象->XML

Marshaller类:将Java内容树序列化回XML数据的过程

	public static void myMarshaller() throws JAXBException {        
		
		JAXBContext jAXBContext = JAXBContext.newInstance(book.class);
		
		Marshaller marshaller = jAXBContext.createMarshaller();
		marshaller.setProperty(Marshaller.JAXB_ENCODING, "utf-8");	//字符集设置
		marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);	//格式化
		
		marshaller.marshal(new book(11, "java",25.8d),System.out);
		
	}

2.2 XML->POJO对象

Unmarshaller类:将XML数据反序列化为新创建的Java内容树的进程,并可在解组时有选择的验证XML数据

	public static void myUnMarshaller() throws JAXBException {      
		
		String xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?> <book><bookName>java</bookName><id>11</id><price>25.8</price></book>";
	   
		JAXBContext jAXBContext = JAXBContext.newInstance(book.class);
		Unmarshaller unmarshaller = jAXBContext.createUnmarshaller();
		
		book book = (book)unmarshaller.unmarshal(new StringReader(xmlString));
		System.out.println(book.toString());
				
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值