业务
:调用别人的接口,将xml格式的数据传递过去,需要将java对象转为xml形式传递;或者别人调用我们的接口,接受xml格式数据,将xml格式数据转为java对象。
使用jar包: <dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.7</version>
</dependency
1、java对象转xml
1.1 先定义java对象的类
package com.qxuninfo.app.response;
import com.thoughtworks.xstream.annotations.XStreamAlias;
@XStreamAlias("PsAgentAddDetail")
public class PsAgentAddDetail {
@XStreamAlias("openId")
private String openId;
@XStreamAlias("identifyNo")
private String identifyNo;
@XStreamAlias("name")
private String name;
@XStreamAlias("phoneNumber")
private String phoneNumber;
@XStreamAlias("comCode")
private String comCode;
@XStreamAlias("score")
private int score;
}/*get和set方法省略*/
1.2 再写controller
@Controller
@RequestMapping("userSubmit")
public class UserInfoSubmitController extends WechatHttpClient {
@RequestMapping(value="/submit",method=RequestMethod.POST)
public void submit(){
PsAgentAddDetail psAgentAddDetail = new PsAgentAddDetail();
psAgentAddDetail.setOpenId("123");
psAgentAddDetail.setName("123");
psAgentAddDetail.setPhoneNumber("123");
psAgentAddDetail.setComCode("123");
psAgentAddDetail.setScore(123);
psAgentAddDetail.setIdentifyNo("123");
//传递过去的xml数据格式
XStream xstream = new XStream(new DomDriver("utf8"));
xstream.processAnnotations(PsAgentAddDetail.class);
String xml = xstream.toXML(psAgentAddDetail);
System.out.println(xml);
}
}
2、xml转java对象
2.1 同样要先定义接受xml的java对象(此处省略)
2.2 接受xml后controller进行转化
@Controller
@RequestMapping("ccic")
public class ProxyRegistServer {
@SuppressWarnings("unused")
@RequestMapping(value="/sendTemplate",method=RequestMethod.POST)
@ResponseBody
public void sendTemplate(){//String xmlreturn
//参数是一个xml 字符串 将参数字符串 转成 对象
String xmlreturn="<PsAgentDetail><openId>2222</openId><agentCode>123</agentCode><auditTime>1998-01-02 12:23:30</auditTime></PsAgentDetail>";
XStream xstream = new XStream(new DomDriver("utf8"));
xstream.processAnnotations(PsAgentDetail.class);
PsAgentDetail psAgentDetail = (PsAgentDetail)xstream.fromXML(xmlreturn);
System.out.println(psAgentDetail.getOpenId()+psAgentDetail.getAgentCode()+psAgentDetail.getAuditTime());
}
}
总结:总的来说还是挺简单的,我这里只是写了最简单的,若是有其他方法还请补充。参考文档; http://www.blogjava.net/bolo/a ... .html
使用jar包: <dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.7</version>
</dependency
1、java对象转xml
1.1 先定义java对象的类
package com.qxuninfo.app.response;
import com.thoughtworks.xstream.annotations.XStreamAlias;
@XStreamAlias("PsAgentAddDetail")
public class PsAgentAddDetail {
@XStreamAlias("openId")
private String openId;
@XStreamAlias("identifyNo")
private String identifyNo;
@XStreamAlias("name")
private String name;
@XStreamAlias("phoneNumber")
private String phoneNumber;
@XStreamAlias("comCode")
private String comCode;
@XStreamAlias("score")
private int score;
}/*get和set方法省略*/
1.2 再写controller
@Controller
@RequestMapping("userSubmit")
public class UserInfoSubmitController extends WechatHttpClient {
@RequestMapping(value="/submit",method=RequestMethod.POST)
public void submit(){
PsAgentAddDetail psAgentAddDetail = new PsAgentAddDetail();
psAgentAddDetail.setOpenId("123");
psAgentAddDetail.setName("123");
psAgentAddDetail.setPhoneNumber("123");
psAgentAddDetail.setComCode("123");
psAgentAddDetail.setScore(123);
psAgentAddDetail.setIdentifyNo("123");
//传递过去的xml数据格式
XStream xstream = new XStream(new DomDriver("utf8"));
xstream.processAnnotations(PsAgentAddDetail.class);
String xml = xstream.toXML(psAgentAddDetail);
System.out.println(xml);
}
}
2、xml转java对象
2.1 同样要先定义接受xml的java对象(此处省略)
2.2 接受xml后controller进行转化
@Controller
@RequestMapping("ccic")
public class ProxyRegistServer {
@SuppressWarnings("unused")
@RequestMapping(value="/sendTemplate",method=RequestMethod.POST)
@ResponseBody
public void sendTemplate(){//String xmlreturn
//参数是一个xml 字符串 将参数字符串 转成 对象
String xmlreturn="<PsAgentDetail><openId>2222</openId><agentCode>123</agentCode><auditTime>1998-01-02 12:23:30</auditTime></PsAgentDetail>";
XStream xstream = new XStream(new DomDriver("utf8"));
xstream.processAnnotations(PsAgentDetail.class);
PsAgentDetail psAgentDetail = (PsAgentDetail)xstream.fromXML(xmlreturn);
System.out.println(psAgentDetail.getOpenId()+psAgentDetail.getAgentCode()+psAgentDetail.getAuditTime());
}
}
总结:总的来说还是挺简单的,我这里只是写了最简单的,若是有其他方法还请补充。参考文档; http://www.blogjava.net/bolo/a ... .html