java对象和xml互转

业务 :调用别人的接口,将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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值