java - 字符串或简单字符串的 Jackson 映射列表

标签 java json spring jackson mapper

我正在尝试从 API 获取一些 Json 并将它们解析为一些 POJO 以与它们一起工作,但我有这种情况,我可以获取一个简单的字符串或字符串数​​组列表作为键。

Json 看起来像这样:

{
  "offerDisplayCategoryMapping": [
    {
      "offerKey": "EUICC_BASE_ACTIVATION_V01",
      "categoriesKeys": {
        "categoryKey": "Included"
      }
    },
    {
      "offerKey": "EUICC_BASE_ACTIVATION_V02",
      "categoriesKeys": {
        "categoryKey": "Included"
      }
    },
    {
      "offerKey": "EUICC_BASE_ACTIVATION_V03",
      "categoriesKeys": {
        "categoryKey": [
          "Option",
          "Included"
        ]
      }
    }]
}

我正在使用 Spring Rest 从 API 获取结果。我创建了一个代表 categoriesKeys 的 POJO用List<String>定义 categoryKey在我的 RestTemplate我定义了一个 ObjectMapper我在哪里启用了DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY对于简单字符串的情况,但这不起作用!!

有什么建议吗?

最佳答案

除了已经提到的全局配置之外,还可以在单​​个属性上支持它:

public class Container {
  @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
  // ... could also add Feature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED
  public List<String> tags;
}

关于java - 字符串或简单字符串的 Jackson 映射列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41504296/

相关文章:

java - 为什么子对象调用具有 main 方法的父类(super class)的私有(private)方法?

java - Spring 框架 - Kotlin - 将实体保存到 XML

javascript - 按最畅销对 Shopify 系列进行排序以在 json 中使用

javascript - 通过 JSON 传递给 JavaScript 之前在哪里声明 PHP?

json - Azure - 应用程序注册 - 编辑 OAuth2Permissions 的现有条目不起作用

java - 将查询结果映射到属性

java - 属性文件似乎产生空指针异常?

java - 无法让 JSTL 与 Spring MVC 一起使用

java - 生成的 jhipster 项目出现错误

带代理的 Android Spring RestTemplate