Java Jackson将未知属性上的失败设置为false不工作
我试图使杰卡森的节俭反序列化向后兼容Java Jackson将未知属性上的失败设置为false不工作,java,jackson,thrift,Java,Jackson,Thrift,我试图使杰卡森的节俭反序列化向后兼容 ObjectMapper mapper = getObjectMapper(false /* pretty */); mapper.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true); // This works // This doesn't work mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN
ObjectMapper mapper = getObjectMapper(false /* pretty */);
mapper.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true); // This works
// This doesn't work
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
MapLikeType t = mapper.getTypeFactory().constructMapLikeType(LinkedHashMap.class, keyClass, valueClass);
return mapper.readValue(content, t);
valueClass
属于以下类型
public class MyThrift implements org.apache.thrift.TBase<MyThrift, MyThrift._Fields>, java.io.Serializable, Cloneable, Comparable<MyThrift> {
如果我在未知属性上使用FAIL\u
但是如果我使用读取未知枚举值作为空值
,我不会得到同样的错误,有人能告诉我为什么在未知属性上使用失败
不起作用吗
jackason bind是否不支持节约的
FAIL\u ON\u UNKNOWN\u PROPERTIES
?FAIL\u ON\u UNKNOWN\u PROPERTIES
用于对象的属性名称<代码>读取\u未知\u枚举\u值\u为\u NULL用于属性值
如果您有一个JSON字符串,如下所示:
{
"property1": "ENUM_ONE",
"property2": "ENUM_TWO"
}
例如,如果您的值对象没有
getProperty2
/setProperty2
,您可以对未知属性使用FAIL\u,如果枚举中不存在ENUM\u TWO
,您将使用READ\u UNKNOWN\u ENUM\u VALUES\u作为\u NULL
。能否显示JSON
负载和MyThrift
类?
{
"property1": "ENUM_ONE",
"property2": "ENUM_TWO"
}