【问题标题】:How can I mark as ignored some properties using json schema or jsonschema2pojo?如何使用 json schema 或 jsonschema2pojo 将某些属性标记为已忽略?
【发布时间】:2017-11-29 01:39:39
【问题描述】:

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

这是我遇到的例外:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“警告”(com.xyz.music.napster.v2.metadata.MetaVO 类),未标记为可忽略(2 个已知属性:“returnedCount”, “总数”]) 在 [来源: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 插件执行类似的操作?

【问题讨论】:

    标签: java json jsonschema jsonschema2pojo


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-05
        • 1970-01-01
        • 1970-01-01
        • 2018-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多