Как Spring знает, как преобразовать возвращаемый объект в JSON, а не XML или какой-либо другой формат? - PullRequest
0 голосов
/ 16 января 2019

Рассмотрим следующее:

@GetMapping("/accounts/{id}")
@ResponseBody
public Account handle() {
    return new Account("1", "sample");
}

В запросе не указан заголовок Accept, но ответ по умолчанию по умолчанию преобразуется в JSON при использовании Spring Boot. В аннотации @ResponseBody в документации 1010 * ничего не говорится о конверсии

Ответы [ 4 ]

0 голосов
/ 16 января 2019
By default, A controller return JSON on spring boot project. But If you want XML format then you can configure this on the pom.xml. For example, you can add this following dependency if you want to return XML data,

<dependency>
   <groupId>com.fasterxml.jackson.dataformat</groupId>
   <artifactId>jackson-dataformat-xml</artifactId>
</dependency>
0 голосов
/ 16 января 2019

Spring-boot приложения используют spring-boot-starter-web в зависимости от POM.xml. Эта конкретная зависимость загружает Джексон-тип данных fastxmls, который инициализируется при использовании @ springbootapplication.

0 голосов
/ 16 января 2019

В @requestMapping Вы можете добавить переменные, такие как Produces или Consumes, например:

consumes = MediaType.APPLICATION_JSON_VALUE 
produces = MediaType.APPLICATION_JSON_VALUE
0 голосов
/ 16 января 2019

Spring по умолчанию использует Jackson / Json (найдя его в пути к классам), но вы можете настроить его самостоятельно:

@Configuration
public class MixInWebConfig extends WebMvcConfigurationSupport {

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(customHttpMessageConverter());
    }
}

См. API HttpMessageConverter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...