java - jackson 将单个项目反序列化为列表

标签 java json jackson json-api

我正在尝试使用一项服务,该服务为我提供一个实体,该实体的字段是一个数组。

{
  "id": "23233",
  "items": [
    {
      "name": "item 1"
    },
    {
      "name": "item 2"
    }
  ]
}

但是当数组包含单个项目时,返回项目本身,而不是一个元素的数组。

{
  "id": "43567",
  "items": {
      "name": "item only"
    }
}

在这种情况下,Jackson 无法转换为我的 Java 对象。

public class ResponseItem {

   private String id;
   private List<Item> items;

   //Getters and setters...
}

是否有直接的解决方案?

最佳答案

你不是第一个提出这个问题的人。看起来很老了。

看完这个问题,可以使用DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY:

查看文档: http://fasterxml.github.io/jackson-databind/javadoc/2.5/com/fasterxml/jackson/databind/DeserializationFeature.html#ACCEPT_SINGLE_VALUE_AS_ARRAY

您需要将此 jackson 功能添加到您的对象映射器。

希望对您有所帮助。

关于java - jackson 将单个项目反序列化为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35201036/

相关文章:

Eclipse 无法找到 JRE

java - 在 Intellij Idea 中查找 com.fasterxml.jackson.core 的问题

jquery - 使用 jQuery 打印 JSON 对象

spring-boot - Spring Boot Jackson - 日志记录

java - 在带有泛型参数的泛型方法中使用 Spring RestTemplate

java - 配置 Jackson 以解析多种日期格式

java - JSch 0.1.53 session.connect() 抛出 "End of IO Stream Read"

Java .jar 可执行文件未打开(双击)

javascript - 将值直接放入输入文本框形式?

java - 谷歌日历: Cannot find com. google.api.client.json.JsonFactory.fromInputStream