xml与javaBean的互相转化

1.学会使用xml的各个注解与含义,参考网址如下 http://blog.csdn.net/lhzjj/article/details/11796713

举例:

</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("&lt;", "<");</span>
xml=xml.replaceAll("&gt;", ">");
 
 
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;
	}

}


2.增加pom

<jaxb-api.version>2.2.3</jaxb-api.version>

<dependency>
<groupId>javax.xml.bind</groupId>
   <artifactId>jaxb-api</artifactId>
   <version>${jaxb-api.version}</version>
</dependency>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值