我有一个简单的POJO:
public class Test {
private String id;
private boolean asString;
// getters and setters
@JsonValue
public Object getValue() {
if (asString) {
return id;
}
// I want to use the default behavior of Jackson but i don't know what to do here
}
}
如您所见,我试图使用@JsonValue来做出以下行为:
asString
是true
,我想将我的对象序列化为一个简单的字符串。asString
为false
,我想使用Jackson的默认行为序列化我的对象。但我不知道该怎么做。我还尝试制作自定义序列化程序,但我无法访问"默认序列化程序"杰克逊并称之为。
我怎样才能做到这一点?我希望在某种条件下将我的对象序列化为字符串,但是如果我愿意的话,我想要支持Jackson的默认行为。
答案 0 :(得分:2)
你可以为这个类编写一个自定义反序列化器,它会检查asString
,如果它是false,它本身会调用默认的jackson反序列化器。
关于如何在How do I call the default deserializer from a custom deserializer in Jackson
执行此操作,有一个很好的答案