【问题标题】:Jackson returning JSON hashmap with keywords 'entry','key' and 'value' in API responseJackson 在 API 响应中返回带有关键字“entry”、“key”和“value”的 JSON hashmap
【发布时间】:2019-08-01 10:48:33
【问题描述】:

我使用 jax-rs 编写了一个 API。我用于 JSON 输出的库是 jackson。我在 2.9.6 版中包含了它对数据绑定、核心和注释的依赖关系。但是,我对哈希图的 json 响应中包含关键字“条目”、“键”和“值”。如何在响应中避免使用这些关键字?

我尝试过使用不同版本的依赖项。

实际反应

{
    "hmap": {
        "entry": [
            {
                "key": "name",
                "value": "sebin"
            }
        ]
    }
}

预期响应

{
    "hmap": {
        "name": "sebin"
    }
}

【问题讨论】:

  • 你可以使用自定义反序列化器吗?
  • 当我点击 postman 上的 API 时,我得到了响应。它在 springboot 中按预期工作。
  • “当我在 postman 上点击 API 时,我得到了响应。不过,它在 springboot 中按预期工作。”您能否详细说明它在 Spring Boot 中按预期工作
  • 我的意思是,在 springboot 项目的 API 中,如果我有一个 hashmap 作为响应类的成员之一,那么它在 postman 上的 JSON 将显示为“预期响应”。即没有出现entry、key、value这三个词。
  • 我在 jax-rs 中是否缺少任何注释?或者有人可以验证 2.9.8 是否是 jackson-databind 的最新版本?

标签: jackson jax-rs


【解决方案1】:

由于没有人能够准确地回答这个问题,我自己发布了修复。

  1. 我将 JacksonFeature.class 添加到我的类集 应用。
  2. 我还在其中添加了一个自定义 json 映射器

阅读以下documentation的第 9.1.4 节

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-10
    • 2019-08-23
    • 2017-05-07
    • 2018-01-25
    • 2019-10-28
    • 1970-01-01
    相关资源
    最近更新 更多