如何获取 Jackson 查看的类的属性列表?
我正在编写需要访问 Jackson 配置定义的类的属性列表的代码。
例如,对于以下类:
@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
}
我会明白,因为这是杰克逊在序列化时实际考虑的属性。[name,longValue]
我不认为编写一整段代码来查找 getter/setter 并检查 Jackson 注释是要走的路,因为这将重新实现 Jackson。
如果我能够获得用于序列化的 Jackson ObjectMapper
的句柄,有没有办法获取类的属性列表<>
或 Type
对象?(尊重杰克逊的注释和配置)
我对 Jackson 的实现进行了一些深入研究,并找到了 ,但我不确定如何从 Jackson 外部使用它(我相信我们不应该这样做)。POJOPropertiesCollector
作为最后的手段,我可以创建我正在检查的类的一个实例,使用ObjectMapper对其进行序列化,然后解析JSON以查找属性名称,但我也不认为这是干净的(并且它会带来一整组问题:null可能不会被序列化,构造器中发生了什么等等)。
有什么想法吗?