javeBean与xml之间的相互转换
来源:互联网 发布:网站模板需要源码吗 编辑:程序博客网 时间:2024/05/18 01:03
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
/**
*<pre><b><font color="blue">JaxbUtil</font></b></pre>
*
*<pre><b> --描述说明--</b></pre>
* <pre></pre>
* <pre>
* <b>--样例--</b>
* JaxbUtil obj = new JaxbUtil();
* obj.method();
* </pre>
* JDK版本:JDK1.6
* @author <b>fengyz</b>
*/
public class JaxbUtil {
/**
* JavaBean转换成xml
* 默认编码UTF-8
* @param obj
* @param writer
* @return
*/
public static String convertToXml(Object obj) {
return convertToXml(obj, "UTF-8");
}
/**
* JavaBean转换成xml
* @param obj
* @param encoding
* @return
*/
public static String convertToXml(Object obj, String encoding) {
String result = null;
try {
JAXBContext context = JAXBContext.newInstance(obj.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, false);
marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.FALSE);
StringWriter writer = new StringWriter();
marshaller.marshal(obj, writer);
result = writer.toString();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* xml转换成JavaBean
* @param xml
* @param c
* @return
*/
@SuppressWarnings("unchecked")
public static <T> T converyToJavaBean(String xml, Class<T> c) {
T t = null;
try {
JAXBContext context = JAXBContext.newInstance(c);
Unmarshaller unmarshaller = context.createUnmarshaller();
t = (T) unmarshaller.unmarshal(new StringReader(xml));
} catch (Exception e) {
e.printStackTrace();
}
return t;
}
}
Test
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
/**
*<pre><b><font color="blue">Country</font></b></pre>
*
*<pre><b> --描述说明--</b></pre>
* <pre></pre>
* <pre>
* <b>--样例--</b>
* Country obj = new Country();
* obj.method();
* </pre>
* JDK版本:JDK1.6
* @author <b>fengyz</b>
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "country") //
@XmlType(propOrder = { "name", "provinceList" })
public class Country {
@XmlElement(name = "country_name")
private String name;
@XmlElementWrapper(name = "provinces")
@XmlElement(name = "province")
private List<Province> provinceList;
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @return the provinceList
*/
public List<Province> getProvinceList() {
return provinceList;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @param provinceList the provinceList to set
*/
public void setProvinceList(List<Province> provinceList) {
this.provinceList = provinceList;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Country [name=" + name + ", provinceList=" + provinceList + "]";
}
}
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
*<pre><b><font color="blue">Province</font></b></pre>
*
*<pre><b> --描述说明--</b></pre>
* <pre></pre>
* <pre>
* <b>--样例--</b>
* Province obj = new Province();
* obj.method();
* </pre>
* JDK版本:JDK1.6
* @author <b>fengyz</b>
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = { "name", "provCity" })
public class Province {
@XmlElement(name = "province_name")
private String name;
@XmlElement(name = "prov_city")
private String provCity;
/**
* @return the provCity
*/
public String getProvCity() {
return provCity;
}
/**
* @param provCity the provCity to set
*/
public void setProvCity(String provCity) {
this.provCity = provCity;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Province [name=" + name + ", provCity=" + provCity + "]";
}
}
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBException;
import org.junit.Test;
import com.dragonsoft.kyry.sys.service.impl.BusService;
import com.dragonsoft.kyry.sys.vo.HcTaskParam;
/**
*<pre><b><font color="blue">JaxbTest3</font></b></pre>
*
*<pre><b> --描述说明--</b></pre>
* <pre></pre>
* <pre>
* <b>--样例--</b>
* JaxbTest3 obj = new JaxbTest3();
* obj.method();
* </pre>
* JDK版本:JDK1.6
* @author <b>fengyz</b>
*/
public class JaxbTest3 {
/**
* @throws JAXBException
*/
@Test
public void showMarshaller() {
Country country = new Country();
country.setName("中国");
List<Province> list = new ArrayList<Province>();
Province province = new Province();
province.setName("江苏省");
province.setProvCity("南京市");
Province province2 = new Province();
province2.setName("浙江省");
province2.setProvCity("杭州市");
list.add(province);
list.add(province2);
country.setProvinceList(list);
String str = JaxbUtil.convertToXml(country);
System.out.println(str.replaceFirst(BusService.JAXB_XML_HEADER, ""));
}
@Test
public void testHcTaskParam() {
HcTaskParam vo = new HcTaskParam();
vo.setJssj("2017-05-05 00:00:00");
vo.setKssj("2017-05-01 00:00:00");
System.out.println(JaxbUtil.convertToXml(vo));
}
/**
*
*/
@Test
public void showUnMarshaller() {
String str = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"+
"<country>"+
" <country_name>中国</country_name>"+
" <provinces>"+
" <province>"+
" <province_name>江苏省</province_name>"+
" <prov_city>南京市</prov_city>"+
" </province>"+
" <province>"+
" <province_name>浙江省</province_name>"+
" <prov_city>杭州市</prov_city>"+
" </province>"+
" </provinces>"+
"</country>";
Country country = JaxbUtil.converyToJavaBean(str, Country.class);
System.out.println(country);
}
}
阅读全文
0 0
- javeBean与xml之间的相互转换
- javeBean与xml之间的相互转换
- [XML]XML与Datatalbe_DataSet_之间的相互转换
- 实现Python对象与xml之间的相互转换
- javaBean与xml、json之间的相互转换
- xml字符串与map之间的相互转换
- 用php实现xml与json之间的相互转换
- 用php实现xml与json之间的相互转换
- Flex 中 xml 与 ArrayCollection 之间的相互转换
- java关于对象(javabean)与xml之间的相互转换
- jaxb2与xml之间相互转换
- java对象与xml 之间相互转换
- jaxb2与xml之间相互转换
- java 实体类与xml之间的相互转换,利用XStream在Java对象和XML之间相互转换
- javaBean和xml之间的相互转换
- xml,json,对象 之间的相互转换
- Json、JavaBean、Xml之间的相互转换
- Xml和bean之间的相互转换
- 算法-->查找 (链表)
- 中国剩余定理模板
- linkurious.js实现Louvain社区发现算法
- 初入编程世界
- android openGl纹理的使用
- javeBean与xml之间的相互转换
- 如何进行随机抽样?
- DOM4J创建 xml文件
- Android 缓存
- mysql无符号整型溢出问题及解决办法
- 设计模总结
- 深入理解 Android 之 View 的绘制流程(四)_Draw
- ReactiveX文档中文翻译
- org.eclipse.wst.common.project.facet.core.xml读不到