Spring MVC的 - 杰克逊XML格式
问题描述:
,我想我的控制器返回以下XML:Spring MVC的 - 杰克逊XML格式
<?xml version="1.0"?>
<ResponseDTO result=”OK” timestamp=”20110322T152403Z">
<myId>9999.99</myId>
<currency>USD</currency>
</ResponseDTO >
基本上我的DTO是这样的:
public class ResponseDTO {
private String myId;
private String currency;
}
我的控制器看起来像这样:
@RequestMapping(produces = MediaType.APPLICATION_XML_VALUE)
@ResponseStatus(value = HttpStatus.OK)
@ResponseBody
public ResponseDTO doSomething() {
...
return new ResponseDTO();
}
我正在使用下面的依赖关系,下面给出的gradle代码片段:
compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version:'2.8.2'
如何用jackson xml解析器实现'result = OK'和'timestamp = 20110322T152403Z'属性?
答
使用JacksonXmlProperty到属性设定为杰克逊根元素象下面这样:
@JacksonXmlRootElement
public class ResponseDTO {
@JacksonXmlProperty(isAttribute=true)
private String response;
@JacksonXmlProperty(localName="myId")
private String myId;
@JacksonXmlProperty(localName="currency")
private String currency;
}
Result:
<ResponseDTO response="test">
<myId>test</myId>
<currency>test</currency>
</ResponseDTO>