您的位置:首页 > 其它

JAXB: 使用JAXB标注POJO,进行XML转换

2010-09-11 17:50 501 查看
1. 编写简单的POJO,并添加基本的注解,类似于JPA,只有被@XmlRootElement标注的类才会处理:

package org.jack.jaxb;import javax.xml.bind.annotation.XmlRootElement;/** @author 李文锴*/@XmlRootElementpublic class Jack {private String firstName;private String lastName;public String getFirstName() {return firstName;}public void setFirstName(String firstName) {this.firstName = firstName;}public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName = lastName;}}

2. 编写测试类,进行POJO与XML的转换:
package org.jack.jaxb;

import java.io.StringReader;
import java.io.StringWriter;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

public class JAXBTest {
	
	public static void main(String[] args) throws Exception {
		JAXBContext context = JAXBContext.newInstance(Jack.class);
		Marshaller marshaller = context.createMarshaller();
		Unmarshaller unmarshaller = context.createUnmarshaller();
		
		Jack jack = new Jack();
		jack.setFirstName("jack");
		jack.setLastName("lee");
		
		StringWriter writer = new StringWriter();
		marshaller.marshal(jack, writer);
		System.out.println(writer.toString());
		
		
		String xml = "<jack><firstName>first</firstName><lastName>last</lastName></jack>";
		Jack xj = (Jack) unmarshaller.unmarshal(new StringReader(xml));
		System.out.println(xj.getFirstName());
		System.out.println(xj.getLastName());
	}

}


3. 查看输出结果:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><jack><firstName>jack</firstName><lastName>lee</lastName></jack>
first
last




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: