xml与javaBean的互相转化

前端之家收集整理的这篇文章主要介绍了xml与javaBean的互相转化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.学会使用xml的各个注解与含义,参考网址如下http://www.jb51.cc/article/p-fnvyrxrz-zm.html

举例:

  1. </pre><pre name="code" class="java">@XmlRootElement(name="RequestOrder")
  2. @XmlType(propOrder={"clientFlag","orderNo","subOrderNo","tradeNo","mailNo","type","flag","sender","receiver","sendStartTime","sendEndTime","codAmount","items","insuranceValue","loadRequire","remark","dataFlag"})
  3. @XmlAccessorType(XmlAccessType.FIELD)
  4. public class OrderRequest {
  5.  
  6.  
  7. /**客户标示**/
  8. @XmlElement(name="logisticProviderID")
  9. private String clientFlag;
  10. /** 客户单号**/
  11. private String orderNo;
  12. /** 子订单业号**/
  13. private String subOrderNo;
  14. /** 业务交易号**/
  15. private String tradeNo;
  16. /** 快递单号**/
  17. private String mailNo;
  18. /** 类型 代收订单0 普通正向 1 退货订单 2 **/
  19. private Integer type;
  20. /** 订单标示 0 **/
  21. private Integer flag;
  22. /** 寄件人 **/
  23. private PersonInfo sender;
  24. /** 收件人 **/
  25. private PersonInfo receiver;
  26. /** 物流上门取货时间段 **/
  27. private String sendStartTime;
  28. private String sendEndTime;
  29. /** 代收金额**/
  30. private double codAmount;
  31. /** 商品信息 **/
  32. @XmlElementWrapper(name="items")
  33. @XmlElement(name="item")
  34. private List<ZJSOrderItems> items;
  35. /** 保险费**/
  36. private double insuranceValue;
  37. /** 配载要求:无/禁航/禁航铁 **/
  38. private String loadRequire;
  39. /** 重要提示 **/
  40. private String remark;
  41. /** 数据标示 (用于分仓发货,C2C类客户省略) **/
  42. private String dataFlag;
  43. //构造方法
  44. //getter与setter方法
  45. }



2.编写JaxUtil类,方便进行xmlTobean与beanToXml的转化

  1. public class JaxbUtil {
  2.  
  3. /** The logger. */
  4. private static final Log LOGGER = LogFactory.getLog(JaxbUtil.class);
  5.  
  6. /**
  7. * JavaBean转换成xml 默认编码UTF-8
  8. *
  9. * @param obj
  10. * @param writer
  11. * @return
  12. */
  13. public static String convertToXml(Object obj) {
  14. return convertToXml(obj,"UTF-8");
  15. }
  16.  
  17. /**
  18. * JavaBean转换成xml
  19. *
  20. * @param obj
  21. * @param encoding
  22. * @return
  23. */
  24. public static String convertToXml(Object obj,String encoding) {
  25. String result = null;
  26. try {
  27. JAXBContext context = JAXBContext.newInstance(obj.getClass());
  28. Marshaller marshaller = context.createMarshaller();
  29. marshaller.setProperty(Marshaller.JAXB_FRAGMENT,Boolean.TRUE);
  30. marshaller.setProperty(Marshaller.JAXB_ENCODING,encoding);
  31.  
  32. StringWriter writer = new StringWriter();
  33. marshaller.marshal(obj,writer);
  34. String xmlTitle = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
  35. result = xmlTitle + writer.toString();
  36. } catch (Exception e) {
  37. LOGGER.error("convertToXml has error,",e);
  38. }
  39.  
  40. return result;
  41. }
  42.  
  43. /**
  44. * xml转换成JavaBean
  45. *
  46. * @param xml
  47. * @param c
  48. * @return
  49. */
  50. @SuppressWarnings("unchecked")
  51. public static <T> T converyToJavaBean(String xml,Class<T> c) {
  52. T t = null;
  53. try {
  54. JAXBContext context = JAXBContext.newInstance(c);
  55. Unmarshaller unmarshaller = context.createUnmarshaller();
  56. <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,255);"><span style="white-space:pre"> </span>xml=xml.replaceAll("&lt;","<");</span>
xml=xml.replaceAll("&gt;",">");
  1.  
xml=xml.replace("<string xmlns=\"http://edi.zjs.com.cn/\"><?xml version=\"1.0\" encoding=\"utf-8\" ?>","");
xml=responseData.replace("</string>","");
  1.  
  1. <span style="white-space:pre"> </span>t = (T) unmarshaller.unmarshal(new StringReader(xml));
  2. } catch (Exception e) {
  3. LOGGER.error("converyToJavaBean has error,e);
  4. }
  5. return t;
  6. }
  7.  
  8. }

猜你在找的XML相关文章