<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.12.0</version>
</dependency>
package yan;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import java.util.List;
import lombok.Data;
@JacksonXmlRootElement(localName = “Head”)
@Data
public class CABXXmlInfoResult {
/**
* 版本,支付平台接口版本号,固定值1.0
*/
@JacksonXmlProperty(localName = “Version”)
private String version;
/**
* 源系统,第三方系统名称
* 固定值:TMS
*/
@JacksonXmlProperty(localName = "SourceSystem")
private String sourceSystem;
/**
* 消息类型,固定值:H2H
*/
@JacksonXmlProperty(localName = "MessageType")
private String messageType;
/**
* 加签验签,Y:加签验签
* N:不加签验签
*/
@JacksonXmlProperty(localName = "Signature")
private String signature;
/**
* 加密解密,Y:加密解密
* N:不加密解密
*/
@JacksonXmlProperty(localName = "Encryption")
private String encryption;
/**
* 接口编号
*/
@JacksonXmlProperty(localName = "TxCode")
private String txCode;
/**
* 分支机构编号
*/
@JacksonXmlProperty(localName = "SubBranchId")
private String subBranchId;
/**
* 报文发送时间:格式:YYYYMMDDhhmmss
*/
@JacksonXmlProperty(localName = "MessageTime")
private String messageTime;
/**
* 目标机构代码
*/
@JacksonXmlProperty(localName = "AgentId")
private String agentId;
/**
* 报文序列号:格式:D+日期+接口编号+6位序列号(累加),报文层的唯一序列号,每次请求都要求唯一
*/
@JacksonXmlProperty(localName = "TxSerial")
private String txSerial;
@JacksonXmlProperty(localName = "Body")
private Body body;
@Data
public static class Body {
/**
* 记录数
*/
@JacksonXmlProperty(localName = "RecCount")
private String recCount;
}
/**
* 批量时,多个item
*/
@JacksonXmlElementWrapper(localName = "Record")
@JacksonXmlProperty(localName = "item")
private List<Item> item;
}
=================================
package yan;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.Data;
@Data
public class Item {
/**
* 申请编号
*/
@JacksonXmlProperty(localName = “ApplyNo”)
private String applyNo;
/**
* 申请类型
*/
@JacksonXmlProperty(localName = "ApplyType")
private String applyType;
/**
* 申请日期
*/
@JacksonXmlProperty(localName = "ApplyDate")
private String applyDate;
/**
* 申请人
*/
@JacksonXmlProperty(localName = "Creator")
private String creator;
/**
* 申请原因
*/
@JacksonXmlProperty(localName = "ApplyReason")
private String applyReason;
/**
* 单位编号,四位SAP编号
*/
@JacksonXmlProperty(localName = "unitNo")
private String unitNo;
/**
* 账号
*/
@JacksonXmlProperty(localName = "AccountNo")
private String accountNo;
/**
* 开户名称
*/
@JacksonXmlProperty(localName = "AccountName")
private String accountName;
/**
* 金融机构
*/
@JacksonXmlProperty(localName = "FinancialInstitution")
private String financialInstitution;
/**
* 开户机构,固定值:HUASHENG-HK
*/
@JacksonXmlProperty(localName = "AccountBank")
private String accountBank;
/**
* 账户类型
*/
@JacksonXmlProperty(localName = "AccountType")
private String accountType;
/**
* 账户性质
*/
@JacksonXmlProperty(localName = "AccountNature")
private String accountNature;
/**
* 账户用途
*/
@JacksonXmlProperty(localName = "AccountPurpose")
private String accountPurpose;
/**
* 默认币种
*/
@JacksonXmlProperty(localName = "DefaultCurrency")
private String defaultCurrency;
/**
* 账户币种,多币种账号用“;”分割
*/
@JacksonXmlProperty(localName = "CurrencyList")
private String currencyList;
}
============================
package yan.controller;
import java.util.ArrayList;
import java.util.Arrays;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import yan.CABXXmlInfoResult;
import yan.Item;
@RestController
@RequestMapping(“/teacher”)
public class TestController {
@RequestMapping(value = "/getInfo", method = RequestMethod.GET, produces = "application/xml")
@ResponseBody
public CABXXmlInfoResult getInfo() {
CABXXmlInfoResult student1 = new CABXXmlInfoResult();
student1.setVersion("1");
CABXXmlInfoResult.Body body = new CABXXmlInfoResult.Body();
body.setRecCount("5224");
student1.setBody(body);
Item item = new Item();
item.setAccountBank("55555");
Item item1 = new Item();
item1.setAccountBank("66666");
student1.setItem(Arrays.asList(item,item1));
return student1;
}
}
===========================输出
============================参考
参考文章