2
respostas

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)

Olá. Gostaria de uma explicação didática a respeito dessa anotação descrita especifica. Confesso que mesmo olhando a documentação https://fasterxml.github.io/jackson-annotations/javadoc/2.6/com/fasterxml/jackson/annotation/JsonProperty.Access.html fiquei com duvidas. Poderiam me explicar fazendo um favor. Desde já meu obrigado.

2 respostas

Ola William.

Como o nome da anotaçao diz, ela é sobre a transformação de JSON para objeto e vice-versa. Isso acontece nos DTOs dos controllers por exemplo.

Primeiramente temos que definir, conforme a própria doc:

  • deserialization (reading values from external representation)
  • serialization (writing out values as external representation)

Então desserialização é quando os dados da request é convertido do JSON para objeto java (lendo valores do contexto externo). Já serialização acontece quando objeto java é convertido para JSON (escrevendo para fora do contexto), no response. Em resumo: serializar é escrever o JSON na resposta e desserializar é obter o objeto.

Assim com essa anotação você pode indicar dentro de um DTO quais atributos da classe são exclusivamente para leitura ou escrita do JSON.

Obrigado pela resposta, atendeu sim e solucionou minha duvida , porém vou deixar o tópico um pouco aberto esperando mais interações dos usuários , pois existem diversas definições sobre o tema, e todas serão sempre bem vindas. Novamente muito obrigado.