1

如何使用 json schema 或 jsonschema2pojo 插件将某些属性标记为已忽略?有时我确实收到了这些属性,有时我没有。

这是我遇到的例外:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“警告”(com.xyz.music.napster.v2.metadata.MetaVO 类),未标记为可忽略(2 个已知属性:“returnedCount”、“totalCount” ]) 在 [来源:okhttp3.ResponseBody$BomAwareReader@49f94818; 行:1,列:15846](通过参考链:com.xyz.music.napster.v2.metadata.PlaylistsResponseVO["meta"]->com.xyz.music.napster.v2.metadata.MetaVO["warnings" ])

这是我的MetaVO课程架构

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

目前我发现如果我在MetaVO课堂上设置以下注释

@JsonIgnoreProperties(ignoreUnknown = true)

我的问题解决了。

然而,这些类是由插件自动生成的(根据我们的项目规范,它们必须保持不变)。

是否可以从 json schema 或 jsonschema2pojo 插件执行类似的操作?

4

2 回答 2

0

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

于 2017-06-30T15:03:28.160 回答
0

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

当它们在 json 中被检索到时,它们将被反序列化并添加到 pojo 的Map<String, Object> additionalProperties字段中。默认情况下会创建附加属性字段。确保它没有在架构中被禁用"additionalProperties": false

于 2022-02-28T16:26:45.373 回答