【发布时间】:2019-07-06 18:57:15
【问题描述】:
我正在尝试使 jackason 向后兼容的节俭反序列化
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> {
我一直在努力
com.fasterxml.jackson.databind.exc.InvalidFormatException: Can not construct instance of com.MyThrift$_Fields from String value 'MY_ID': value not one of declared Enum instance names
如果我使用FAIL_ON_UNKNOWN_PROPERTIES
但是如果我使用 READ_UNKNOWN_ENUM_VALUES_AS_NULL 不会出现同样的错误,有人可以指出为什么使用 FAIL_ON_UNKNOWN_PROPERTIES 不起作用吗?
jackason 绑定不支持FAIL_ON_UNKNOWN_PROPERTIES 用于节俭吗?
【问题讨论】:
-
你能展示你的
JSON有效载荷和MyThrift类吗?