【发布时间】:2019-06-18 11:27:52
【问题描述】:
我有一个 Java POJOS 的层次结构,基类是抽象的。为了确保 Jackson 可以从 JSON 反序列化为正确的具体类型,我用 @JsonTypeInfo(use=JsonTypeInfo.Id.CLASS) 注释了基类。但是,当 Jackson 尝试反序列化时,我收到以下错误:
com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Missing type id when trying to resolve subtype of [simple type, class com.foo.MyAbstractClass]: missing type id property '@class'
at [Source: (byte[])""{\"id\":10,\"params\":[\"foo\",\"bar\"],\"@class\":\"com.foo.MyConcreteClass\"}""; line: 1, column: 1]
类型标识符字段 @class 在 JSON 有效负载中,但 Jackson 找不到它。知道发生了什么吗?请注意,Jackson 反序列化是透明地发生的;我正在使用 Spring Cloud Stream。
【问题讨论】:
标签: java jackson json-deserialization