版权声明:本篇文章由IT_CREATE整理 https://blog.csdn.net/IT_CREATE/article/details/86599715
JAXBTool工具,可以将对象转换为xml,也可将xml转换成对象
代码:
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
public class JAXBTool {
/**
* 使用SUN公司提供Marshaller
*
* Marshaller是jdk1.6中自带的xml解析器(它可以完成XML的字符串,与JAVA对象之间的互转)
* @param cls
* @param obj
* @return
* @throws JAXBException
*/
public static <T> String java2Xml(Class<T> cls,Object obj) throws JAXBException {
JAXBContext context = JAXBContext.newInstance(cls);
Marshaller marsheller = context.createMarshaller();//得到XML的解析器
marsheller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
StringWriter writer = new StringWriter();
marsheller.marshal(obj, writer);//使用XML的解析器,完成对象的xml解析
return writer.toString();
}
/**
* 使用SUN公司提供Marshaller
* 完成XML格式的数据,反序列化为Java对象
* @param cls
* @param content
* @return
* @throws JAXBException
*/
public static <T> Object xml2Java(Class<T> cls,String content) throws JAXBException {
JAXBContext context = JAXBContext.newInstance(cls);
Unmarshaller unmarsheller = context.createUnmarshaller();//XML格式的反解析类
StringReader reader = new StringReader(content);
return unmarsheller.unmarshal(reader);
}
}