public class B2BPayToXml {
public Head head;
public Body body;
public void setHead(Head head) {
this.head = head;
}
public void setBody(Body body) {
this.body = body;
}
}
/**
* 报文头部信息
* @author lizhiyong
* @version $Id: Head.java, v 0.1
2014年9月24日 上午10:01:57 Exp $
*/
public class Head {
public String MerPtcId;
public String TranTime;
public String TranCode;
public String TranDate;
public Head(String merPtcId, String tranTime, String tranCode, String tranDate) {
MerPtcId = merPtcId;
TranTime = tranTime;
TranCode = tranCode;
TranDate = tranDate;
}
}
/**
* 报文体信息
* @author lizhiyong
* @version $Id: Body.java, v 0.1
2014年9月24日 上午10:03:30 Exp $
*/
public class Body {
public String MerTranSerialNo;
public String SafeReserved;
//协议信息
public PtcInfo ptcInfo;
//业务信息
public BusiInfo busiInfo;
//会员信息
public UserInfo userInfo;
//商品信息
public GoodsInfo goodsInfo;
//交易信息
public TranInfo tranInfo;
//通道信息
public ChannelInfo channelInfo;
//备注信息
public MemoInfo memoInfo;
public void setMerTranSerialNo(String merTranSerialNo) {
MerTranSerialNo = merTranSerialNo;
}
public void setSafeReserved(String safeReserved) {
SafeReserved = safeReserved;
}
public void setPtcInfo(PtcInfo ptcInfo) {
this.ptcInfo = ptcInfo;
}
public void setBusiInfo(BusiInfo busiInfo) {
this.busiInfo = busiInfo;
}
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
public void setGoodsInfo(GoodsInfo goodsInfo) {
this.goodsInfo = goodsInfo;
}
public void setTranInfo(TranInfo tranInfo) {
this.tranInfo = tranInfo;
}
public void setChannelInfo(ChannelInfo channelInfo) {
this.channelInfo = channelInfo;
}
public void setMemoInfo(MemoInfo memoInfo) {
this.memoInfo = memoInfo;
}
}
/**
* 协议信息
* @author lizhiyong
* @version $Id: PtcInfo.java, v 0.1
2014年9月24日 上午10:09:52 Exp $
*/
public class PtcInfo {
public String SubMerPtcId;
public PtcInfo(String subMerPtcId) {
SubMerPtcId = subMerPtcId;
}
}
/**
* 业务信息
* @author lizhiyong
* @version $Id: BusiInfo.java, v 0.1
2014年9月24日 上午10:08:00 Exp $
*/
public class BusiInfo {
public String MerOrderNo;
public BusiInfo(String merOrderNo) {
MerOrderNo = merOrderNo;
}
}
/**
* 会员信息
* @author lizhiyong
* @version $Id: UserInfo.java, v 0.1
2014年9月24日 上午10:08:47 Exp $
*/
public class UserInfo {
public String BuyerId;
public String BuyerName;
public String SellerId;
public String SellerName;
public UserInfo(String buyerId, String buyerName, String sellerId, String sellerName) {
BuyerId = buyerId;
BuyerName = buyerName;
SellerId = sellerId;
SellerName = sellerName;
}
}
/**
* 商品信息
* @author lizhiyong
* @version $Id: GoodsInfo.java, v 0.1
2014年9月24日 上午10:09:15 Exp $
*/
public class GoodsInfo {
public String GoodsName;
public String GoodsTxt;
public String GoodsDesc;
public GoodsInfo(String goodsName, String goodsTxt, String goodsDesc) {
GoodsName = goodsName;
GoodsTxt = goodsTxt;
GoodsDesc = goodsDesc;
}
}
/**
* 交易信息
* @author lizhiyong
* @version $Id: TranInfo.java, v 0.1
2014年9月24日 上午10:10:17 Exp $
*/
public class TranInfo {
public String TranModeId;
public String TranAmt;
public String TranCry;
public TranInfo(String tranModeId, String tranAmt, String tranCry) {
TranModeId = tranModeId;
TranAmt = tranAmt;
TranCry = tranCry;
}
}
/**
* 通道信息
* @author lizhiyong
* @version $Id: ChannelInfo.java, v 0.1
2014年9月24日 上午10:10:46 Exp $
*/
public class ChannelInfo {
public String ChannelApi;
public String ChannelInst;
public ChannelInfo(String channelApi, String channelInst) {
ChannelApi = channelApi;
ChannelInst = channelInst;
}
}
/**
* 备注信息
* @author lizhiyong
* @version $Id: MemoInfo.java, v 0.1
2014年9月24日 上午10:11:10 Exp $
*/
public class MemoInfo {
public String BuyerMemo;
public String SellerMemo;
public String PlatMemo;
public String PayMemo;
public MemoInfo(String buyerMemo, String sellerMemo, String platMemo, String payMemo) {
BuyerMemo = buyerMemo;
SellerMemo = sellerMemo;
PlatMemo = platMemo;
PayMemo = payMemo;
}
}
XStream xStream = new XStream(new DomDriver());
xStream.alias("Document", B2BPayToXml.class);
//设置类别名
xStream.aliasField("Head", B2BPayToXml.class, "head");
xStream.aliasField("Body", B2BPayToXml.class, "body");
xStream.aliasField("PtcInfo", Body.class, "ptcInfo");
xStream.aliasField("BusiInfo", Body.class, "busiInfo");
xStream.aliasField("UserInfo", Body.class, "userInfo");
xStream.aliasField("GoodsInfo", Body.class, "goodsInfo");
xStream.aliasField("TranInfo", Body.class, "tranInfo");
xStream.aliasField("ChannelInfo", Body.class, "channelInfo");
xStream.aliasField("MemoInfo", Body.class, "memoInfo");
B2BPayToXml bToXml = new B2BPayToXml();
//头部信息
bToXml.setHead(new Head(merPtcId, tranTime, tranCode, tranDate));
//协议信息
PtcInfo ptcInfo = new PtcInfo(subMerPtcId);
//业务信息
BusiInfo busiInfo = new BusiInfo(merOrderNo);
//会员信息
UserInfo userInfo = new UserInfo(buyerId, buyerName, sellerId, sellerName);
//商品信息
GoodsInfo goodsInfo = new GoodsInfo(goodsName, goodsTxt, goodsDesc);
//交易信息
TranInfo tranInfo = new TranInfo(tranModeId, tranAmt, tranCry);
//通道信息
ChannelInfo channelInfo = new ChannelInfo(channelApi, channelInst);
//备注信息
MemoInfo memoInfo = new MemoInfo(buyerMemo, sellerMemo, platMemo, payMemo);
Body body = new Body();
body.setMerTranSerialNo(merTranSerialNo);
body.setSafeReserved(safeReserved);
body.setPtcInfo(ptcInfo);
body.setBusiInfo(busiInfo);
body.setUserInfo(userInfo);
body.setGoodsInfo(goodsInfo);
body.setTranInfo(tranInfo);
body.setChannelInfo(channelInfo);
body.setMemoInfo(memoInfo);
bToXml.setBody(body);
String top = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n";
String xml = top + xStream.toXML(bToXml);
写一个测试类:代码就不写了:
结果:
<?xml version="1.0" encoding="UTF-8"?>
<Document>
<Head>
<MerPtcId>0000</MerPtcId>
<TranTime>0000</TranTime>
<TranCode>0000</TranCode>
<TranDate>0000</TranDate>
</Head>
<Body>
<MerTranSerialNo>0000</MerTranSerialNo>
<SafeReserved>0000</SafeReserved>
<PtcInfo>
<SubMerPtcId>0000</SubMerPtcId>
</PtcInfo>
<BusiInfo>
<MerOrderNo>0000</MerOrderNo>
</BusiInfo>
<UserInfo>
<BuyerId>0000</BuyerId>
<BuyerName>0000</BuyerName>
<SellerId>0000</SellerId>
<SellerName>0000</SellerName>
</UserInfo>
<GoodsInfo>
<GoodsName>0000</GoodsName>
<GoodsTxt>0000</GoodsTxt>
<GoodsDesc>0000</GoodsDesc>
</GoodsInfo>
<TranInfo>
<TranModeId>0000</TranModeId>
<TranAmt>0000</TranAmt>
<TranCry>0000</TranCry>
</TranInfo>
<ChannelInfo>
<ChannelApi>0000</ChannelApi>
<ChannelInst>0000</ChannelInst>
</ChannelInfo>
<MemoInfo>
<BuyerMemo>0000</BuyerMemo>
<SellerMemo>0000</SellerMemo>
<PlatMemo>0000</PlatMemo>
<PayMemo>0000</PayMemo>
</MemoInfo>
</Body>
</Document>
分享到:
相关推荐
// 使用@XStreamOmitField对不生成xml的字段加注释 @XStreamOmitField private String age; private Profile profile; @XStreamImplicit() private List<Address> addlist; public Person(String name, ...
// 给类名设置别名,可读性更高 ``` 然后,我们可以将一个Person对象转换为XML: ```java Person person = new Person(); person.setName("John"); person.setAge(30); String xml = xstream.toXML(person); ...
在描述中提到的`@XStreamAlias`是XStream提供的一个关键注解,用于给Java类或字段指定一个别名,这个别名将在生成的XML中作为元素名称出现。例如: ```java @XStreamAlias("person") public class Person { ...
在`toXml`方法中,我们同样创建了`XStream`实例,设置别名,然后使用`xstream.toXML()`方法将对象写入XML文件。 总结起来,XStream和Xpp3提供了一种方便的方式来处理Java对象和XML之间的转换。在实际应用中,你可以...
2. **初始化Xstream实例**:接着,创建Xstream实例,并进行必要的配置,如忽略默认的类型信息、设置别名等。 ```java XStream xstream = new XStream(); xstream.ignoreUnknownFields(true); xstream.alias(...
Xstream 是一个 Java 库,用于处理 XML 文件的序列化和反序列化,同时也支持将 JavaBean 转换为 JSON 格式。它的核心理念是通过简单的 API 设计,使得 XML 序列化过程变得简洁,无需额外的映射文件或辅助类。 ### 1...
XStream会自动处理对象的字段,生成对应的XML元素。 - **反序列化**:使用`fromXML()`方法,XStream能够根据XML字符串重建原始的Java对象。 3. **注解支持**: - XStream支持使用Java的注解来进一步定制序列化和...
下面我们将详细介绍JavaBean生成XML的过程以及XStream库的使用方法。 首先,理解JavaBean的概念。JavaBean是一种遵循特定规则的Java类,通常包含公共属性和getter/setter方法,用于封装数据。它们是Java应用程序中...
// 默认生成XML xstream.setMode(XStream.NO_REFERENCES); json = xstream.toXML(person); // 现在生成JSON // JSON到JavaBean person = (Person) xstream.fromXML(json); ``` **四、自定义转换规则** XStream...
`alias()`方法用于设置别名,使得XML更易读。 4. **自定义XML输出**:XStream允许我们通过注解来定制XML输出。例如,可以使用`@XStreamAsAttribute`将字段作为XML属性: ```java @XStreamAsAttribute private ...
3. **配置xStream**:可以使用`xstream.alias()`或`xstream.registerConverter()`等方法来设置别名或注册自定义转换器。 4. **对象到XML**:使用`xstream.toXML(object)`方法将Java对象转换为XML字符串。 5. **XML...
例如,你可以通过`alias()`方法为类名设置别名,使XML更易读: ```java xstream.alias("user", User.class); ``` 此外,XStream支持复杂的Java对象结构,包括集合、嵌套对象等。对于集合,如List或Set,XStream会...
如果XML结构与Java类不完全匹配,可以通过XStream的alias方法自定义别名,或者使用annotations进行更精确的映射。 在提供的`AppDemo`文件中,可能包含了一个简单的示例应用,演示了如何在实际项目中使用XStream进行...
如果要在生成的XML文件开头添加XML声明,可以使用`XStream.createXMLStreamWriter()`方法,或者在创建`XStream`实例时指定`DomDriver`并设置编码: ```java XStream xstream = new XStream(new DomDriver("UTF-8"))...
然后,初始化Xstream实例,并配置其转换器,以便正确地解析和生成XML: ```java import com.thoughtworks.xstream.XStream; XStream xstream = new XStream(); xstream.alias("server", ServerConfig.class); ``` ...
默认情况下,XStream会根据JavaBean的字段名生成XML元素名。但有时我们可能需要自定义元素名或者处理特殊类型。例如,你可以使用`alias()`方法为类或字段指定别名: ```java xstream.alias("person", User.class); ...
默认情况下,XStream会根据字段名生成XML标签。但有时你需要自定义标签名,可以通过`alias()`方法设置别名: ```java xstream.alias("person", Person.class); ``` 还可以为字段设置别名: ```java xstream....
使用XStream时,首先需要实例化XStream对象,然后通过`alias()`方法定义别名,以便简化XML中的元素名称。接着,调用`fromXML()`或`toXML()`方法进行对象到XML的转换或反之。例如: ```java XStream xstream = new ...
3. 配置XStream:你可以设置别名、忽略字段等,比如`xstream.alias("person", Person.class);` 4. 序列化对象:`String xml = xstream.toXML(person);` 5. 反序列化XML:`Person person = (Person) xstream.from...
上述代码会生成类似以下的XML: ```xml <firstName>John <lastName>Doe ``` **2. 反序列化从XML** XStream同样支持从XML字符串反序列化回Java对象。只需调用`fromXML()`方法,传入XML字符串,即可得到相应的...