Jaxb2 轉換XML文檔——完成Java對象和XML相互轉換
這次介紹Jaxb2完成xml的轉換,Jaxb2使用了JDK的新特性。如:Annotation、GenericType等,Jaxb2需要在即將轉換的JavaBean中添加annotation註解。下面我們就來看看Jaxb2是怎麼樣完成Java對象到XML之間的相互轉換吧。
一、 準備工作
1、 資源準備
a) 官方文檔:http://www.oracle.com/technetwork/articles/javase/index-140168.html
b) Jar包下載:http://jaxb.java.net/2.2.3/JAXB2_20101209.jar
如果你有添加jdk的jar到工程中,在rt.jar中就帶有jaxb2。一般情況下不用自己添加jaxb2的jar。
2、 程式前代碼準備
package com.hoo.test;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.hoo.entity.Account;
import com.hoo.entity.AccountBean;
import com.hoo.entity.Birthday;
import com.hoo.entity.ListBean;
import com.hoo.entity.MapBean;
/**
* function:Jaxb2 完成Java和XML的編組、解組
* @author hoojo
* @createDate 2011-4-25 上午11:54:06
* @file Jaxb2Test.java
* @package com.hoo.test
* @project WebHttpUtils
* @blog http://blog.csdn.net/IBM_hoojo
* @email hoojo_@126.com
* @version 1.0
*/
public class Jaxb2Test {
private JAXBContext context = null;
private StringWriter writer = null;
private StringReader reader = null;
private AccountBean bean = null;
@Before
public void init() {
bean = new AccountBean();
bean.setAddress("北京");
bean.setEmail("email");
bean.setId(1);
bean.setName("jack");
Birthday day = new Birthday();
day.setBirthday("2010-11-22");
bean.setBirthday(day);
try {
context = JAXBContext.newInstance(AccountBean.class);
} catch (Exception e) {
e.printStackTrace();
}
}
@After
public void destory() {
context = null;
bean = null;
try {
if (writer != null) {
writer.flush();
writer.close();
}
if (reader != null) {
reader.close();
}