如何使用 json 架构或 jsonschema2pojo 将某些属性标记为已忽略?

How can I mark as ignored some properties using json schema or jsonschema2pojo?

如何使用 json 架构或 jsonschema2pojo 插件将某些属性标记为已忽略?有时我会收到这些属性,有时我不会。

这是我遇到的异常:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "warnings" (class com.xyz.music.napster.v2.metadata.MetaVO), not marked as ignorable (2 known properties: "returnedCount", "totalCount"]) at [Source: okhttp3.ResponseBody$BomAwareReader@49f94818; line: 1, column: 15846] (through reference chain: com.xyz.music.napster.v2.metadata.PlaylistsResponseVO["meta"]->com.xyz.music.napster.v2.metadata.MetaVO["warnings"])

这是我的架构 MetaVO class

{
  "properties": {
    "returnedCount": {
      "type": "integer"
    },
    "totalCount": {
      "type": "integer"
    }
  },
  "type": "object"
}

目前我发现如果我在 MetaVO class

上设置以下注释
@JsonIgnoreProperties(ignoreUnknown = true)

我的问题解决了。

但是 这些 class 是由插件自动生成的(根据我们的项目规范,它们必须保持如此)。

是否可以通过 json 架构或 jsonschema2pojo 插件执行类似的操作?

我通过从 jackson-converter 切换到 gson-converter 设法解决了这个问题。

在 jsonschema2pojo 情况下,可以从 json 或 json 用于生成 pojo 的模式中删除这些属性。

当它们在 json 中被检索时,它们将被反序列化并添加到 pojo 的 Map<String, Object> additionalProperties 字段中。 additionalProperties 字段是默认创建的。确保它未在架构 "additionalProperties": false

中禁用