杰克逊如何确定某个类是否可以反序列化

时间:2019-06-24 00:16:16

标签: jackson

杰克逊能否检查一堂课,看它是否可以反序列化。例如

class NotDeserializable {
   private int i;
   public NotDeserializable(int value) { i = value; }
}

此类不能反序列化。

Can not construct instance of NotDeserializable. no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)

杰克逊能否预先确定?我试过了,但是返回了真

mapper.canDeserialize(mapper.constructType(NotDeserializable.class))

1 个答案:

答案 0 :(得分:0)

没有默认的构造方法。那就是为什么它不能反序列化。 试试这个:

class NotDeserializable {
   private int i;
   public NotDeserializable(int value) { i = value; }

   public NotDeserializable(){}
}

要创建对象杰克逊,请先找到@JsonCreator注释的构造函数(如果该注释不存在),然后使用默认构造函数创建对象。