Вы можете получить довольно много информации через BeanDescription
объект, хотя получить его довольно сложно (в основном потому, что он в основном предназначен для внутреннего использования Джексона).Но это используется несколькими модулями расширения Jackson, поэтому поддерживается вариант использования.Итак:
ObjectMapper mapper = ...;
JavaType type = mapper.constructType(PojoType.class); // JavaType to allow for generics
// use SerializationConfig to know setup for serialization, DeserializationConfig for deser
BeanDescription desc = mapper.getSerializationConfig().introspect(type);
Вы также можете безопасно увеличить его до BasicBeanDescription
, если необходимо.
Это дает вам доступ к большому количеству информации;либо список логических свойств (с помощью которых вы можете найти getter / setter / field / ctor-аргумент, который его представляет), полностью разрешенные методы (с аннотациями) и тому подобное.Надеюсь, этого достаточно.Логические свойства полезны, поскольку они содержат как внешнее имя (ожидаемое от JSON), так и внутреннее имя, полученное из getter / setter.