2
respostas

Pessoal, tudo bem? Eu preciso serializar uma Classe, mas não queria inserir todos os atributos no Json, existe algum annotation para selecionar os atributos do Objeto que eu quero serializar

package com.calcmedic.calc.models;

import lombok.Getter; import lombok.Setter;

@Getter @Setter public class Abcd2 extends _DefaultCalc{ private int idade; //serializar private int condicoesClinicas; //serializar private int duracao; //NÃO serializar private int pressaoSanguinea; //NÃO serializar private int diabetes; //NÃO serializar }

2 respostas

Oi Jonatan,

Você pode usar a anotação @JsonIgnore no atributo que não quer enviar. Mas a boa prática mesmo seria fazer uso do padrão DTO. O DTO é um padrão de design voltado justamente para isso que você quer fazer, facilitar a transferência de dados de uma entidade sem comprometê-la e sem criar acoplamentos.

Então, em vez de você retornar a sua entidade Abcd2, você poderia criar um DTO só com os dados que você tem interesse de passar, por exemplo:

// usando Record
public record Abcd2DTO(int idade, int condicoesClinicas, int duracao) {}


// usando class Java com Lombok
@Getter
@RequiredArgsConstructor
public class Abcd2DTO {

private final int idade;
private final int condicoesClinicas
private final int duracao;

}

Esse padrão é utilizado tanto para enviar dados como para receber dados de fora, você tem muito mais flexibilidade de adaptar cada DTO para cada endpoint.

Haaa show, obrigado pelo apoio Mateus, eu até cheguei a fazer usando o Record. Agora vou estudar sobre DTO e implementar desta forma.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software