【发布时间】:2013-09-23 04:28:18
【问题描述】:
理想情况下,它应该看起来像这样:
List<String> props = objectMapper.getKnownProperties(MyPojo.class);
唉,没有这样的方法。通常可行的方法是将 Include.ALWAYS 显式设置为 ObjectMapper 的默认值,反射地实例化该类的实例,将其转换为映射,然后检查键集。但是,类仍然可以覆盖 ObjectMapper 给定注释的包含行为。
还有更优雅的方法吗?至少,有没有办法使用对象映射器覆盖类注释?
编辑:
澄清一下,这些 pojos/javabeans/DTO 是为与 Jackson 一起使用而设计的,并且已经配备了注释以产生特定的序列化行为。碰巧我需要动态地知道我可能会预先得到什么,最好不要复制杰克逊已经可用的信息。也就是说,如果另一个框架提供此功能,我很想知道。 :)
【问题讨论】:
-
你到底想做什么?也许有更好的工具来完成这项工作。
-
你试过Gson吗?那么你不需要知道所有的属性就可以在 json 之间进行转换。
-
具体来说,我正在开发一个小型 rest api 框架,它允许 html 客户端根据与 JPA 数据模型的单个属性对应的任何 json 属性进行排序/搜索。为了预先正确构建查询,我需要这些信息来确定有效的可能性。