如何让jsontypeinfo在未知类型上返回null?
我有如下代码如何让jsontypeinfo在未知类型上返回null?,json,jackson,Json,Jackson,我有如下代码 @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", visible = true, defaultImpl = Default.class) @JsonSubTypes({ @Type(value = T1.class, name = "t1"), @Type(value = T2.class, name = "t
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", visible = true, defaultImpl = Default.class)
@JsonSubTypes({
@Type(value = T1.class, name = "t1"),
@Type(value = T2.class, name = "t2"),}
)
public abstract class T{
}
另一类可能像书一样
class Foo{
T t;
T anotherT;
}
但是,如果类型未知,它将返回一个默认实例。如果我没有指定defaultImp,jackson只会抛出一个异常
Could not resolve type id 't3' into a subtype of T
我已将\u UNKNOWN\u属性上的反序列化Feature.FAIL\u设置为false
我需要的是,如果类型不是't1'或't2',只需将值设置为null,然后继续解析。
我怎么做
谢谢一个有趣的问题,尽管我相信这很难实现,因为它会破坏反序列化。您希望框架如何处理非T1或T2的反序列化T类型?使用抽象类?只有当json数据中有一些java代码不支持时,才会出现问题。Java到json总是很好的。我只希望json解析部分以静默方式失败。与未知属性失败一样,未知属性错误。json仍然是有效的json,因此代码应该能够继续。