通过以下方式实现自定义反序列化器以反序列化JSON。但是mapper.treeToValue导致无限次地调用代码。
sha1
执行mapper.treeToValue后,控制再次返回myResourcedeserialize方法并执行无限次数并导致stackOverFlowError。
有什么建议吗?
答案 0 :(得分:6)
我们遇到过类似的情况,这个解决方案基于: 自定义反序列化器用于在不使用类型属性
的情况下以多态方式解析JSON让我们将多态类称为BaseResource(基类),SubResource1,SubResource2。
BaseResource具有注释以指定哪个CustomSerializer类
@JsonDeserialze(using=CustomDeserializer.class)
public class BaseResource{
......
}
所以在SubResource1和SubResource2上,我们通过使用JsonDeserialer.None.class添加注释以不使用CustomDeserialzer.class
@JsonDeserialze(using=JsonDeserialer.None.class)
public class SubResource1 extends BaseResource{
......
}