【问题标题】:Jackson Deserializing Polymorphic Types: Handle errors due to misspelled classesJackson 反序列化多态类型:处理由于类拼写错误导致的错误
【发布时间】:2021-10-20 21:50:45
【问题描述】:

这是一个示例类:

@JsonTypeInfo(use = Id.NAME, property = "type")
@JsonSubTypes({
    @Type(value = Cat.class),
    @Type(value = Dog.class)
})
@JsonIgnoreProperties(ignoreUnknown = true)
public abstract class Pet {

/..../

}

我有两个问题:

  1. 如果我们有一个拼写错误的 JSON 类型 (Dogg),如下所示:{"type": "Dogg" }

我会得到默认的“无法读取 JSON” 异常。

我该如何处理这个自定义的东西,例如:“提供的类型错误。”

  1. 如果 JSON 中没有提供 type 字段,我会再次遇到 “无法读取 JSON” 异常。 有没有办法标记此字段,例如 @NotEmpty,以便用户获得适当的异常?

【问题讨论】:

    标签: java json jackson polymorphism


    【解决方案1】:

    我认为最好的选择是在将 json 传递给 jackson 之前对其进行预处理。

    【讨论】:

      猜你喜欢
      • 2012-02-23
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多