Por que o Spring usou a biblioteca Jackson e como ele entende que é necessário fazer a conversão para JSON?
Jackson seria apenas para objetos?
Por que o Spring usou a biblioteca Jackson e como ele entende que é necessário fazer a conversão para JSON?
Jackson seria apenas para objetos?
Oi WG,
No Java existem algumas bibliotecas para fazer conversão Java <-> JSON, dentre elas: Jackson, Jettison e Gson.
O Spring por padrão utiliza o Jackson, mas é possível substituir por essas outras, caso você queira.
O Jackson funciona da seguinte maneira:
ObjectMapper mapper = new ObjectMapper();
TopicoDto topico = mapper.readValue(json, TopicoDto.class);
A classe ObjectMapper do Jackson é que faz a conversão da String que contém o Json para um objeto java equivalente.
Nas classes RestController por padrão o Spring considera automaticamente que vamos devolver no formato JSON, e por isso ele chama o Jackson para converter nosso DTO em JSON.
Mas é possível alterar para outro formato, por exemplo XML:
@GetMapping(produces = MediaType.APPLICATION_XML_VALUE)
Bons estudos!