2016-11-06 7 views
1

Я хотел бы мой контроллер возвращать следующий 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(); 
} 

Я использую следующую зависимость, фрагмент градации, приведенный ниже:

compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version:'2.8.2' 

Как можно получить свойства 'result = OK' и 'timestamp = 20110322T152403Z' с помощью парсера jsonson xml?

ответ

1

Использование 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>