Jackson控制多态的注解--JsonTypeInfo,JsonSubTypes,JsonTypeName

JsonTypeInfo.As.EXISTING_PROPERTY:

当使用 EXISTING_PROPERTY 时,类型信息被包含在一个已有的属性中,而不是创建一个新的属性来存储类型信息。
在 JSON 对象中,已有的属性将用于存储类型信息。例如,如果您的数据结构已经包含了一个属性,您可以使用这个属性来存储类型信息。
在反序列化时,Jackson 会查找已有的属性并将其用作类型信息。
JsonTypeInfo.As.EXTERNAL_PROPERTY:

当使用 EXTERNAL_PROPERTY 时,类型信息被包含在一个新的外部属性中。
在 JSON 对象中,新的外部属性将用于存储类型信息。这个外部属性与您的数据结构中的其他属性是分离的。
在反序列化时,Jackson 会查找这个外部属性并将其用作类型信息。
总的来说,这两个选项的区别在于类型信息是放在已有的属性中(EXISTING_PROPERTY)还是放在一个新的外部属性中(EXTERNAL_PROPERTY)。

 

用法和场景

使用 EXISTING_PROPERTY 的主要情况是,在已有的 JSON 数据结构中,你想要将类型信息嵌入到某个现有的属性中,而不是在顶层或额外的属性中传递类型信息。这可以帮助你在不破坏现有 JSON 结构的情况下,添加多态类型的支持。

举例来说,如果你有一个 shape 属性,可以使用 EXISTING_PROPERTY 来将多态类型信息嵌入到 shape 属性中。

用法和场景

使用 EXTERNAL_PROPERTY 的场景是&#x

你可能感兴趣的:(java,spring,boot,spring,cloud)