如何在jackson 2.8.1

时间:2016-08-05 20:16:55

标签: java json jackson

我正在将java版本中的jackson库从版本2.4.6升级到最新版本(2.8.1)。 以下AnnotatedField构造函数现在需要一个TypeResolutionContext类型的新参数

// v2.4.6
AnnotatedField(Field field, AnnotationMap annMap)

// v2.8.1
AnnotatedField(TypeResolutionContext contextClass, Field field, AnnotationMap annMap)

我阅读了API(https://fasterxml.github.io/jackson-databind/javadoc/2.8/com/fasterxml/jackson/databind/introspect/TypeResolutionContext.html)但无法找到如何获取此TypeResolutionContext。

只有2个类实现了这个TypeResolutionContext(AnnotatedClass和TypeResolutionContext.Basic),但它们似乎都没有合适的访问器方法返回TypeResolutionContext。

任何人都知道我怎么能得到它?

1 个答案:

答案 0 :(得分:0)

AnnotatedField构造函数虽然是公共的,但不应该直接使用 - 它不是为了实例化而设计的。因此,TypeResolutionContext参数在大多数情况下如果实现为空则可以正常工作,如下所示:

// lambda use to be more explicit (could be just null)
AnnotatedField annotatedField = new AnnotatedField( ( Type t) -> { return null; }, field, annMap);

(+ info有点偏离主题:PropertyNamingStrategy也不应该在jackson项目之外使用。)

来源:https://groups.google.com/forum/#!topic/jackson-user/96wemvuUCHs