xml与javaBean的互相转化
2016-04-21 16:32
621 查看
1.学会使用xml的各个注解与含义,参考网址如下 /article/11526372.html
举例:
2.编写JaxUtil类,方便进行xmlTobean与beanToXml的转化
xml=xml.replaceAll(">", ">");
xml=xml.replace("<string xmlns=\"http://edi.zjs.com.cn/\"><?xml version=\"1.0\" encoding=\"utf-8\" ?>", "");
xml=responseData.replace("</string>", "");
举例:
</pre><pre name="code" class="java">@XmlRootElement(name="RequestOrder") @XmlType(propOrder={"clientFlag","orderNo","subOrderNo","tradeNo","mailNo","type","flag","sender","receiver","sendStartTime","sendEndTime","codAmount", "items","insuranceValue","loadRequire","remark","dataFlag"}) @XmlAccessorType(XmlAccessType.FIELD) public class OrderRequest { /**客户标示**/ @XmlElement(name="logisticProviderID") private String clientFlag; /** 客户单号**/ private String orderNo; /** 子订单业号**/ private String subOrderNo; /** 业务交易号**/ private String tradeNo; /** 快递单号**/ private String mailNo; /** 类型 代收订单0 普通正向 1 退货订单 2 **/ private Integer type; /** 订单标示 0 **/ private Integer flag; /** 寄件人 **/ private PersonInfo sender; /** 收件人 **/ private PersonInfo receiver; /** 物流上门取货时间段 **/ private String sendStartTime; private String sendEndTime; /** 代收金额**/ private double codAmount; /** 商品信息 **/ @XmlElementWrapper(name="items") @XmlElement(name="item") private List<ZJSOrderItems> items; /** 保险费**/ private double insuranceValue; /** 配载要求:无/禁航/禁航铁 **/ private String loadRequire; /** 重要提示 **/ private String remark; /** 数据标示 (用于分仓发货,C2C类客户省略) **/ private String dataFlag; //构造方法 //getter与setter方法 }
2.编写JaxUtil类,方便进行xmlTobean与beanToXml的转化
public class JaxbUtil { /** The logger. */ private static final Log LOGGER = LogFactory.getLog(JaxbUtil.class); /** * 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_FRAGMENT, Boolean.TRUE); marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding); StringWriter writer = new StringWriter(); marshaller.marshal(obj, writer); String xmlTitle = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; result = xmlTitle + writer.toString(); } catch (Exception e) { LOGGER.error("convertToXml has error,", e); } 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(); <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre code_snippet_id="1656191" snippet_file_name="blog_20160421_2_9698971" name="code" class="java"><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="white-space:pre"> </span>xml=xml.replaceAll("<", "<");</span>
xml=xml.replaceAll(">", ">");
xml=xml.replace("<string xmlns=\"http://edi.zjs.com.cn/\"><?xml version=\"1.0\" encoding=\"utf-8\" ?>", "");
xml=responseData.replace("</string>", "");
<span style="white-space:pre"> </span>t = (T) unmarshaller.unmarshal(new StringReader(xml)); } catch (Exception e) { LOGGER.error("converyToJavaBean has error,", e); } return t; } }
相关文章推荐
- 接上一篇 word2vec调用demo
- weblogic服务器部署web代理修复weblogic的JAVA反序列化漏洞
- JAVA--浅谈线程
- [改善Java代码]易变业务使用脚本语言编写
- java IO 一 (读写字符串)
- JAVA守护线程
- spring整合消息队列rabbitmq
- JavaMail类
- Java类代码块执行顺序
- java要注意的问题1
- Java反射机制Class类的用法详解
- SpringMvc、Maven整合FreeMarker--访问不到js、css
- JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分
- 启动报错: org.springframework.web.context.ContextLoaderListener
- Spring容器启动后注入service到Servlet并自动执行
- Java 泛型的限定
- 关于javax包找不到
- [改善Java代码]慎用动态编译
- [spring源码学习]五-BeanPostProcessor的使用
- java反射详解