【问题标题】:How to deserialise Eclipse Collections types?如何反序列化 Eclipse Collections 类型?
【发布时间】:2023-03-24 01:05:02
【问题描述】:

我遇到了这个库eclipse-collections,它适合我的用例。但不幸的是,我无法使用 Gson 或 Jackson(这两个最流行的序列化/反序列化库)对其进行反序列化。

这两个库中的任何一个都提供对 Eclipse 集合的支持吗?如果是,那么如何?

【问题讨论】:

    标签: java jackson eclipse-collections


    【解决方案1】:

    eclipse-collections 的官方 github 存储库的自述文件中的一个文档提到:

    不幸的是,新的集合类型与正常的序列化框架不兼容。 Jackson 可以说是 Java 最流行的 JSON 序列化框架,它无法开箱即用地反序列化 Eclipse Collections 类型。为此,现在有一个 Jackson 模块直接支持大多数 Eclipse 集合类型(包括原始集合)。

    他们不仅提到了问题,而且还提供了解决方案。您需要做的就是将 EclipseCollectionsModule 注册到 Jackson 的 ObjectMapper 对象,如下所示:

    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.datatype.eclipsecollections.EclipseCollectionsModule;
    
    ObjectMapper mapper = new ObjectMapper().registerModule(new EclipseCollectionsModule());
    

    完成上述操作后,您现在可以照常使用 ObjectMapper。所以,

    MutableIntLongMap myDeserialisedVariable = mapper.readValue(jsonString, MutableIntLongMap.class);
    

    【讨论】:

      猜你喜欢
      • 2022-12-12
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 2019-11-13
      相关资源
      最近更新 更多