【发布时间】:2020-06-27 18:00:33
【问题描述】:
当我使用配置为的 ObjectMapper 时:
DefaultTyping applicability = ObjectMapper.DefaultTyping.JAVA_LANG_OBJECT;
TypeResolverBuilder<?> typer = DefaultTypeResolverBuilder.construct(applicability, validator);
String propertyName = "type";
typer = typer.init(JsonTypeInfo.Id.NAME, null);
typer = typer.inclusion(JsonTypeInfo.As.PROPERTY);
typer = typer.typeProperty(propertyName);
ObjectMapper mapper=new ObjectMapper();
mapper.setDefaultTyping(typer);
它会产生类似的 JSON:
{
"type": "ShortClassName",
...
}
该类型没有预期的完整包名。但是尝试使用此对象映射器进行反序列化会导致:
com.fasterxml.jackson.databind.exc.InvalidTypeIdException
如何将基本包名称指定为对象映射器配置的一部分,以便序列化的 JSON 只有类名?
【问题讨论】:
标签: java json jackson json-deserialization