java对象和xml互转

来源:互联网 发布:jsp在线考试系统源码 编辑:程序博客网 时间:2024/06/10 07:06
业务:调用别人的接口,将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
0 0
原创粉丝点击