Jackson 在将 POJO 转换为 Map 时将 Set 转换为 List

时间:2021-05-20 09:46:37

标签: java jackson

嗨,

我有一个 (POJO) 模型对象,有时需要将其转换为 Map
我目前正在使用 Jackson 作为一个很好的库,我在其他地方也经常使用它。
除了我的 POJO 中的变量是 Set 之外,一切正常,因为 Jackson 在结果 List 中将它们转换为 Map
但这不行,因为我的用例需要 Set 的属性。

这是一个简短的单元测试来显示问题:

  @Getter
  @AllArgsConstructor
  public class O {
    private Set<String> abc;

  }

  @Test
  void test() throws Exception {

    Map map = new ObjectMapper().convertValue(new O(Set.of("abc", "def")), Map.class);
    assertFalse(List.class.isAssignableFrom(map.get("abc").getClass())); // Already fails
    assertTrue(Set.class.isAssignableFrom(map.get("abc").getClass()));
  }

如何让 Jackson 使用变量的原始 Collection 类型?

谢谢
克里斯

0 个答案:

没有答案
相关问题