【发布时间】:2013-11-04 09:57:03
【问题描述】:
我正在使用 Jackson 反序列化来自我不拥有的服务器的 json 响应。我正在使用 JsonTypeInfo 注释来处理多态数据类型。这是我的基本类型的配置(在本例中为Thing):
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = Thing.class, name = "Thing"),
@JsonSubTypes.Type(value = FancyThing.class, name = "FancyThing")
})
一切正常,直到服务器返回一个空字符串,我期待其中一种类型,然后我得到其中一种:
org.codehaus.jackson.map.JsonMappingException: Unexpected token (VALUE_STRING), expected FIELD_NAME: missing property 'type' that is to contain type id (for class com.stackoverflow.Thing)
有没有推荐的处理这种情况的方法?就像我说的,我不控制服务器,所以我必须处理这个客户端。我宁愿通过配置ObjectMapper 来处理这个问题,但是ObjectMapper#configure(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true) 似乎并没有像我预期的那样工作。有什么想法吗?
【问题讨论】:
标签: java json jackson deserialization