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!