杰克逊显然不能构造
MetricValueDescriptor对象,因为它是一个接口。您将需要在json和ObjectMapper中具有其他信息,以告诉杰克逊如何从中构造对象。假设
MVDImpl有一个实现的具体类,这是一种实现方法
MetricValueDescriptor:
您可以通过json本身中的字段告诉Jackson所需的类型信息,例如
"type"。为此,您需要在界面中使用
JsonTypeInfo和
JsonSubTypes注释。例如,
@JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")@JsonSubTypes({ @Type(value = MVDImpl.class, name = "mvdimpl") })interface MetricValueDescriptor{ ...}您还需要
"type":"mvdimpl"在json中添加一个字段。
我打算将您指向官方文档以获取更多信息,但随后我找到了一个涵盖该主题的出色博客-
与Jackson进行反序列化JSON。它通过示例非常全面地涵盖了该主题。因此,如果您需要更多自定义内容,则绝对应该阅读它。



