DEV Community

loading...
Cover image for [pt-br] ObjectMapper: Convertendo para tipos genericos.

[pt-br] ObjectMapper: Convertendo para tipos genericos.

André Moriya
Updated on ・1 min read

Olá pessoal!

Decidi fazer esse post, pois precisei fazer uma conversão usando classes genéricas.

É um tanto simples, mas que acredito que posso servir de ajuda futuramente, tanto pra mim quanto para outros devs.

O que eu precisava, era pegar um retorno JSON vindo de um serviço rest.

O código fico parecido com isso:

CloseableHttpClient client = HttpClients.createDefault();

// Codigos omitidos...
response = client.execute(request);
//Codigos omitidos...

BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
ObjectMapper mapper = new ObjectMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
MensagemApiDTO<ProdutoDTO> resposta = mapper.readValue(br.readLine(), new TypeReference<MensagemApiDTO<ProdutoDTO>>() {});

ProdutoDTO dto = resposta.getDto();
Enter fullscreen mode Exit fullscreen mode

O responsável por fazer a conversão é esse cara:

mapper.readValue(br.readLine(), new TypeReference<MensagemApiDTO<ProdutoDTO>>() {});
Enter fullscreen mode Exit fullscreen mode

O TypeReference faz a conversão para o seu objeto genérico.

Basicamente foi isso.
Como o projeto não usa spring, essa foi a maneira implementada.

Bom é isso, espero que esse post possa ter ajudado.
Criticas e sugestões são bem-vindas.

Obrigado

Discussion (0)