什么是用于Jackson的StdDeserializer的构造函数中的类<! - ? - > vc或JavaType valueType

时间:2016-09-09 07:55:39

标签: java json jackson jackson-modules

我正在使用Jackson JSON library制作自定义反序列化器(扩展StdDeserializer),我无法弄清楚构造函数参数的用途是什么。杰克逊使用的Class<?>JavaType valueType是什么?是不是因为Java没有具体化的泛型,杰克逊需要更多关于你正在制作实例的泛型类型的信息?

1 个答案:

答案 0 :(得分:2)

Jackson将JSON结构与java类匹配。就像JAXB将java类映射到XSD-s。

因此,这个Class<?>(或JavaType)定义了哪个java类属于这个反序列化器。这些java类可以是具有正确注释的任何内容,例如@JsonProperty

另一个问题:为什么这个类是通用的?这是因为[java.lang.Class][1]是通用的。如果你想正确地做,那么你这样指定:

StdDeserializer serializer = new StdDeserializer(YourClass.class);

关键是StdSerializer 不绑定您可以指定的类。