`
tangkuo
  • 浏览: 102242 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

xml 与JAVAbean转换

 
阅读更多
package com.dinpay.dpp.csp.instruction.vo;

import java.io.Serializable;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

/**
* 交易接口输入输出参数实体类
*
* @author tangkuo
*
*/

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="packet")
public class SpdbPacketVo implements Serializable{
private static final long serialVersionUID = 1L;

//5.1.1 输入要素: https页面方式和https指令方式下向网关发送交易时,都必须提供3个基本要素:transName、Plain、Signature。
//其中,transName是交易名;Plain是交易字段拼装的明文,支付、撤销、退货的Plain的组织方式类似;Signature是对Plain的签名。

@XmlElement(name="transName")
private  String transName;//消费交易类型

@XmlElement(name="plain")
private  String plain;//商户订单数据组成的原始数据字符串

@XmlElement(name="signature")
private  String signature;//原始数据字符串的签名


//5.1.2 输出要素: 支付网关返回商户的信息,是以XML报文的组织结构的一段内容
//交易正常返回:<packet><transName>交易名称</transName><Plain> 交易请求明文</Plain><Signature>交易请求明文的签名</Signature></packet>
//交易出错返回: <packet><ErrorCode>错误码</ErrorCode><ErrorMsg>错误信息</ErrorMsg></packet>

@XmlElement(name="ErrorCode")
private  String ErrorCode;//错误码

@XmlElement(name="ErrorMsg")
private  String ErrorMsg;//错误信息

/**
* 获取消费交易类型
* @return
*/
public String getTransName() {
return transName;
}

/**
* 设置消费交易类型
* @param transName
*/
public void setTransName(String transName) {
this.transName = transName;
}

/**
* 获取商户订单数据组成的原始数据字符串
* @return
*/
public String getPlain() {
return plain;
}

/**
* 设置商户订单数据组成的原始数据字符串
* @param plain
*/
public void setPlain(String plain) {
this.plain = plain;
}

/**
* 获取原始数据字符串的签名
* @return
*/
public String getSignature() {
return signature;
}

/**
* 设置原始数据字符串的签名
* @param signature
*/
public void setSignature(String signature) {
this.signature = signature;
}

/**
* 获取浦发银行返回的错误码信息
* @return
*/
public String getErrorCode() {
return ErrorCode;
}

/**
* 设置浦发银行返回的错误码信息
* @return
*/
public void setErrorCode(String errorCode) {
ErrorCode = errorCode;
}

/**
* 获取银行放返回的错误信息
* @return
*/
public String getErrorMsg() {
return ErrorMsg;
}

/**
* 设置错误信息值
* @return
*/
public void setErrorMsg(String errorMsg) {
ErrorMsg = errorMsg;
}




}





/**
* Copyright (c) 2011-2015 All Rights Reserved.
*/
package com.dinpay.dpp.csp.instruction.comm.util.spdb;

import java.io.StringReader;
import java.io.StringWriter;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.dinpay.dpp.csp.instruction.vo.SpdbPacketVo;
/**
* JavaBean与XML转换工具类
*
* @author tangkuo
*
*/
public class JaxbUtil {

private final static Logger log = LoggerFactory.getLogger(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) {
try {
JAXBContext context = JAXBContext.newInstance(obj.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);

StringWriter writer = new StringWriter();
marshaller.marshal(obj, writer);
return writer.toString();
} catch (Exception e) {
log.error(e.getMessage(), e);
return StringUtils.EMPTY;
}
}

/**
* xml转换成JavaBean
* @param xml
* @param c
* @return
*/
@SuppressWarnings("unchecked")
public static <T> T convertToJavaBean(String xml, Class<T> c) {
try {
JAXBContext context = JAXBContext.newInstance(c);
Unmarshaller unmarshaller = context.createUnmarshaller();
return (T) unmarshaller.unmarshal(new StringReader(xml));
} catch (Exception e) {
log.error(e.getMessage(), e);
return null;
}
}

public static void main(String[] args) {
SpdbPacketVo spdbPacketVo = new SpdbPacketVo();
String xml = "<packet><ErrorCode>96; nested exception is java.lang.NullPointerException: null</ErrorCode><ErrorMsg>网关系统错</ErrorMsg></packet>";
spdbPacketVo = convertToJavaBean(xml,spdbPacketVo.getClass());
System.out.println("="+spdbPacketVo);
}
}




  • 1.zip (8.6 KB)
  • 下载次数: 0
分享到:
评论

相关推荐

    利用JAXB进行xml和javabean之间转换

    而JAXB(Java Architecture for XML Binding)是Java提供的一种标准API,它允许我们轻松地在Java对象(javabean)和XML文档之间进行转换。通过JAXB,开发者可以避免手动编写XML解析和序列化代码,极大地提高了开发...

    javabean和xml互相转换工具类以及jar包

    这个类可能包含静态方法,如`beanToXml(JavaBean bean)`用于将JavaBean转换为XML字符串,以及`xmlToBean(String xml)`用于将XML字符串反向转换回JavaBean。使用这样的工具类可以使代码更加简洁,提高代码复用性。 ...

    xml与JavaBean互相转换的好工具---Xstream

    xml与JavaBean互相转换的好工具---Xstream,能够很方便的实现xml与JavaBean之间的转换,这在系统之间进行信息交互是非常方便的

    xml与javabean的转换

    在使用Jox进行XML和JavaBean转换时,需要注意以下几点: 1. **属性映射**:确保XML元素和JavaBean属性之间有正确的映射关系。这可以通过在JavaBean上使用特定的注解来实现,或者在使用`BeanXmlMapping`之前提供一个...

    xml转javaBean,javaBean转xml,xml标签大小写问题,以及对xml特殊符号的处理

    本文将深入探讨XML与JavaBean之间的转换、XML标签的大小写规则、XML特殊符号的处理以及CDATA的生成。 1. XML转JavaBean: 在Java编程中,XML数据经常需要转换为Java对象以便于操作。这一过程通常通过XML解析器来...

    javabean生成xml.xml转换成javabean的工具类

    javabean生成xml.xml转换成javabean的工具类

    xml与javabean的相互转换

    在Java开发中,XML与JavaBean之间的转换是非常常见的需求,例如在序列化和反序列化过程中。以下将详细解释这两种数据格式间的转换方法。 1. XML到JavaBean的转换: - 使用JAXB(Java Architecture for XML Binding...

    xml与javabean之间的相互转换,很方便,导入即可使用

    使用XStream进行XML与JavaBean的转换非常简单。首先,你需要在项目中引入XStream库,如果是MyEclipse,可以通过右键点击项目 -&gt; Build Path -&gt; Configure Build Path -&gt; Libraries -&gt; Add External JARs,选择...

    android xUtils断点下载+xml与javaBean互转+打开本地音乐播放器

    总的来说,熟悉并掌握xUtils的断点下载、XStream的XML与JavaBean转换,以及如何启动本地音乐播放器,对于提升Android开发技能是十分有益的。这不仅可以帮助你构建更高效、功能更全面的应用,也有助于应对各种实际...

    javabean 与 xml文件转换

    之后,我们可以使用以下代码将JavaBean转换为XML: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; public class BeanToXmlConverter { public static void main(String[] args)...

    javabean到XML的转换

    将JavaBean转换为XML是常见的数据序列化方式,有助于在不同系统间共享和存储对象状态。 在Java中,有多种方法可以实现JavaBean到XML的转换,包括使用API如JAXB(Java Architecture for XML Binding)、DOM...

    XML和javaBean的转换

    轻松的实现javaBean到XML的转换,和XML到javaBean的转换

    Xml与javaBean互转.zip

    StAX的`XMLStreamReader`和`XMLStreamWriter`接口可以用于将JavaBean转换为XML和反之。 5. **XStream库**:XStream是一个轻量级的Java库,它可以将任何Java对象序列化为XML,反之亦然。XStream使用简单的注解,使得...

    用JOX实现xml和javabean的相互转换

    这个库简化了XML解析和Java对象之间的转换过程,使得开发人员能够更便捷地处理XML数据,特别是在需要在不同系统间传输Java对象或者在Web服务中使用XML作为数据交换格式时。 在本文中,我们首先看到一个Java Bean的...

    javabean 转换 xml映射文件工具

    总的来说,JavaBean到XML映射文件工具是一个提高开发效率的实用工具,它简化了数据在Java对象和XML文档之间的转换,特别是在与Castor框架集成时。理解这个工具的工作原理和使用方法对于任何需要处理数据序列化的Java...

    xml、xsd、javabean的互相转换

    作为备忘录,实现xml转换成xsd,然后由xsd转换到javabean,最后在xml和javabean之间互相转换。 说明网址:http://blog.csdn.net/beanjoy/article/details/38272051

    javabean和xml互转详细文档+例子

    jox库是一个轻量级的Java库,专注于JavaBean与XML之间的转换。它使用JDOM作为XML处理的底层实现,提供了简单易用的API来处理JavaBean到XML以及XML到JavaBean的转换。jox库的优点在于其简洁的API和对JavaBean属性的...

Global site tag (gtag.js) - Google Analytics