如何将映射添加到JsonTypeInfo

时间:2019-03-31 13:59:26

标签: java inheritance types casting

我有一个具有结构的任务类

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type", defaultImpl = Task.class, visible = true)
@JsonSubTypes({@JsonSubTypes.Type(value = IntegrationTask.class, name = "INTEGRATION"),
        @JsonSubTypes.Type(value = Task.class, name = "INNER")})
    class Task
    {
       TaskType type;
    }

当TaskType为枚举时:

enum TaskType {INTEGRATION, SHARED}

我有这个班的两个孩子:

class IntegrationTask extends Task {}

class SharedTask extends Task { UUID integrationId }

它可以工作,但是我必须添加行为“ ..如果请求主体中也有'integrationId',那么这就是SharedTask”。我该如何实施?

我想在多个JsonTypeInfos和JsonSubTypes之间进行映射,但是除了编写自定义JsonTypeResolver之外,我没有看到任何解决方案,但是它看起来有很大不同,并且我没有找到任何具体的示例。

0 个答案:

没有答案