税务局接口-xml格式和对象互转工具类使用说明

税务局接口-xml格式和对象互转工具类使用说明

注意: 由于税务局接口请求xml数据和返回xml数据和常规的不一样,所以手动写了一个工具类,本工具类只针对税务局xml请求参数和返回参数与对象互相。

说明

工具类主要是两个方法 objectToXml 对象转xml格式数据 xmlToObject xml格式数据转对象
在设置字段别名上定义了两个注解 @XmlAlias(“name”) xml请求字段别名 @JSONField(name = “name”) xml返回字段别名
所有需要转化的对象 需要继承BaseXmlDto类
所有请求接口的xml对象都要使用BusinessXmlDto 对象
BusinessXmlDto businessXmlDto = new BusinessXmlDto<>();
所有解析返回xml的对象 BusinessXmlDto对象 和 ReturnBodyDto对象
BusinessXmlDto businessXmlDto1 = new BusinessXmlDto<>();
ReturnBodyDto bodyDto = new ReturnBodyDto<>();

主要方法
  • objectToXml(Object object, String root); 对象转xml格式数据
  • xmlToObject(String xmlData, TypeReference type); xml格式数据转对象
例子
 package com.aixiao.inv.seed.model.dto;

import lombok.Data;

/**
 * @author cyx
 * Date: Create in 2020/5/2 16:34
 * Utils: Intellij Idea
 * Description: 接口请求返回头xml信息
 */

@Data
public class BusinessXmlDto<T> {

    /**
     * 接口id
     */
    private String id;

    /**
     * 接口名称
     */
    private String comment;

    /**
     * 请求头
     */
    private T body;
}



ReturnBodyDto类 (税务局接口返回主体对象)
package com.aixiao.inv.seed.model.dto;

import lombok.Data;

/**
 * @author 陈胤训
 * @date 2020/6/7 17:04
 * Utils: Intellij Idea
 * Description: 税务局接口返回主体类
 */

@Data
public class ReturnBodyDto<E> {

    /**
     * 返回代码
     */
    private String returnCode;

    /**
     * 返回信息
     */
    private String returnMsg;

    /**
     * 返回数据
     */
    private E returnData;

}

DemoDto
package com.aixiao.inv.seed.model.dto;

import com.aixiao.inv.seed.config.annotation.XmlAlias;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.util.List;

/**
 * @author cyx
 * Date: Create in 2020/5/27 16:57
 * Utils: Intellij Idea
 * Description:
 */
@Data
@XmlAlias("DemoDto3")
public class DemoDto extends BaseXmlDto {

    @XmlAlias("hsslbs3") //xml请求字段别名
    @JSONField(name = "hsslbs3") //xml返回字段别名
    private String hsslbs;

    @XmlAlias("demo2Dtos3")
    @JSONField(name = "demo2Dtos3")
    private List<Demo2Dto> demo2Dtos;
}

BaseXmlDto
package com.aixiao.inv.seed.model.dto;

/**
 * @author 陈胤训
 * @date 2020/6/6 15:51
 * Utils: Intellij Idea
 * Description: xml基础类
 */
public class BaseXmlDto {
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值