Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jackson将未知属性上的失败设置为false不工作_Java_Jackson_Thrift - Fatal编程技术网

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"
}