一、前言
做微信公众号平台开发的项目,将会用到将不同类型的对象转换为xml字符串,而后再做相应的处理,下面将对象转xml字符串的功能介绍如下。
二、引入jar包
下载jar链接:
https://download.csdn.net/download/qq_43026206/84232983
三、使用方法
1、创建对象
public class BaseMessage {
@XStreamAlias("ToUserName") //解决标签体第一个字母大写的问题
private String toUserName;
@XStreamAlias("FromUserName")
private String fromUserName;
@XStreamAlias("CreateTime")
private String createTime;
@XStreamAlias("MsgType")
private String msgType;
public String getToUserName() {
return toUserName;
}
public void setToUserName(String toUserName) {
this.toUserName = toUserName;
}
public String getFromUserName() {
return fromUserName;
}
public void setFromUserName(String fromUserName) {
this.fromUserName = fromUserName;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getMsgType() {
return msgType;
}
public void setMsgType(String msgType) {
this.msgType = msgType;
}
public BaseMessage(Map<String, String> requestMap) {
this.toUserName = requestMap.get("FromUserName");
this.fromUserName = requestMap.get("ToUserName");
this.createTime = System.currentTimeMillis()/1000 + "";
}
}
创建子类:
@XStreamAlias("xml") //解决由实体转为xml时root根目录 <xml>问题
public class TextMessage extends BaseMessage{
public TextMessage(Map<String, String> requestMap,String content) {
super(requestMap);
this.setMsgType("text");
this.content = content;
}
@XStreamAlias("Content")
private String content;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
@Override
public String toString() {
return "TextMessage [content=" + content + ", toUserName()=" + getToUserName() + ", "
+ "fromUserName()=" + getFromUserName() + ", msgType()=" + getMsgType() + "]";
}
}
测试文件
@Test
public void testMsg(){
Map<String, String> map = new HashMap<String, String>();
map.put("ToUserName","to");
map.put("FromUserName","from");
map.put("MsgType","type");
TextMessage textMsg = new TextMessage(map,"Nice to meet you");
XStream stream = new XStream();
//注解使用
stream.processAnnotations(TextMessage.class);
String xml = stream.toXML(textMsg);
System.out.println(xml);
}