Spring MVC - 杰克逊 XML 格式

Spring MVC - Jackson XML format

我希望我的控制器 return 以下 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 为 jackson 根元素设置属性,如下所示:

@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>