Como obter a lista de propriedades de uma classe como Jackson a visualiza?
Estou escrevendo um código que precisa acessar a lista de propriedades de uma classe, conforme definido por uma configuração de Jackson.
Por exemplo, para a seguinte classe:
@JsonIgnoreProperties(value = { "intValue" })
public class MyDto {
@JsonProperty("name")
private String stringValue;
private int intValue;
private long longValue;
@JsonIgnore
private boolean booleanValue;
// standard setters and getters are not shown
}
eu pegaria[name,longValue]
porque essas são as propriedades que Jackson realmente considera ao serializar.
Eu não acho que escrever um pedaço inteiro de código para procurar getters / setters e inspecionar as anotações de Jackson seja o caminho a percorrer, pois isso seria reimplementar Jackson.
Se eu conseguir controlar o JacksonObjectMapper
usado para serialização, existe uma maneira de obter uma lista de propriedades de umClass<?>
ouType
objeto? (respeitando as anotações e a configuração de Jackson)
Analisei um pouco a implementação de Jackson e encontrei oPOJOPropertiesCollector
, mas não tenho certeza de como posso usá-lo fora de Jackson (não devemos fazer isso, acredito).
Como último recurso, eu poderia criar uma instância da classe que estou inspecionando, serializá-la com o ObjectMapper e analisar o JSON para encontrar nomes de propriedades, mas também não acho que isso esteja limpo (e traria sua conjunto inteiro de problemas: nulos podem não ser serializados, o que acontece no construtor etc.).
Alguma ideia?