有人能指出我对杰克逊使用默认deserializaton所必须达到的标准的一个很好的解释吗?
我可以发布一个帖子并提供一个字符串/ jsonObjects的HashMap集合,但它不能用于连续包含相同信息的数据集。我尝试实现自己的反序列化器,但响应总是“Unprocessable Entity”。我成功使用了特定的类,但我试图通过传递数据集来推广我的解决方案。
显然,我需要更好地了解正在发生的事情! TIA!
答案 0 :(得分:0)
这取决于你班级的粗略类型。杰克逊专门处理:
Collection
实施Map
实施Enum
Š如果type不是前4个类别,则它将被视为“Other”,并且应该遵循公共字段或getter和/或setter的Java Bean约定。
还必须有一个无参数构造函数(不需要是公共的),或者用@JsonCreator
注释的另一个构造函数 - 期望一些公共单参数构造函数(String
,int
/从JSON标量值绑定时,也接受Integer
,long
/ Long
,boolean
/ Boolean
)。
但是为了获得更多信息,你真的应该分享你得到的实际例外:上面只是对所需内容的一般概念。杰克逊可以使用各种类,并且对类的定义并不是特别严格。但它确实对各种JSON结构与POJO的匹配有所期望。