小编Jso*_*raz的帖子

使用 Jackson 反序列化重复键以列出

我正在尝试将 json 反序列化为对象。但是,json 有重复的键。我无法更改 json,我想使用 Jackson 将重复键更改为列表。

这是我检索的 json 的示例:

{
  "myObject": {
    "foo": "bar1",
    "foo": "bar2"
  }
}
Run Code Online (Sandbox Code Playgroud)

这是反序列化后我想要的:

{
  "myObject": {
    "foo": ["bar1","bar2"]
  }
}
Run Code Online (Sandbox Code Playgroud)

我像这样创建了我的课程:

public class MyObject {
    private List<String> foo;
    // constructor, getter and setter
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAYfromobjectMapper但它所做的只是获取最后一个键并将其添加到列表中,如下所示:

{
  "myObject": {
    "foo": ["bar2"]
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我的objectMapper配置:

new ObjectMapper().configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
Run Code Online (Sandbox Code Playgroud)

有没有办法使用 Jackson 将重复的键反序列化到列表中?

java json jackson spring-boot

3
推荐指数
1
解决办法
3628
查看次数

标签 统计

jackson ×1

java ×1

json ×1

spring-boot ×1