我正在尝试在Jackson中使用自定义反序列化器来反序列化一些json对象。但是,当我尝试让ObjectMapper读取json时,会发生以下异常:
java.lang.IllegalStateException: AnnotationIntrospector returned Class com.Geometry.GeometryDeserializer; expected Class<JsonDeserializer>
我有点不知道该怎么做,因为看起来AnnotationIntrospector抱怨我的GeometryDeserializer不是JsonDeserializer的子类,当它显然是。
这是我创建Object Mapper的地方:
public void deserializeJson(String json) {
ObjectMapper mapper = new ObjectMapper();
mapper.addMixInAnnotations(Feature.class, MixIn.class);
Feature feature = mapper.readValue(json, Feature.class);
}
...我的混音在课堂上:
abstract class MixIn {
@JsonDeserialize(using=GeometryDeserializer.class)
abstract void setGeometry(Geometry geometry);
}
...和我的解串器:
public class GeometryDeserializer extends JsonDeserializer<Geometry> {
@Override
public Geometry deserialize(JsonParser jp, DeserializationContext dc) throws IOException, JsonProcessingException {
//stuff happens
}
}
任何反馈/协助都会受到很大关注。
感谢。
答案 0 :(得分:0)
狂野猜测:你是不小心混淆了Jackson 1.x和Jackson 2.x类型?类名大多相同,但存在于不同的包中 - 当使用一组类时,事情会起作用,但IDE可能会导致意外的混淆。