1

このライブラリeclipse-collectionsに出くわしましたが、それは私のユースケースに合っています。しかし、残念ながら、シリアル化/逆シリアル化で最も人気のある 2 つのライブラリである Gson または Jackson を使用して逆シリアル化することはできません。

2 つのライブラリのいずれかが Eclipse コレクションをサポートしていますか? はいの場合、どのように?

4

1 に答える 1

2

eclipse-collectionsの公式 github リポジトリの Readme にあるドキュメントの 1 つには、次のように記載されています。

残念ながら、新しいコレクション型には通常のシリアル化フレームワークとの互換性がありません。Jackson は、おそらく最も人気のある Java の JSON シリアライゼーション フレームワークですが、すぐに使用できる Eclipse Collections 型をデシリアライズすることはできません。この目的のために、ほとんどの Eclipse コレクション タイプ (プリミティブ コレクションを含む) を直接サポートする Jackson モジュールが用意されています。

彼らは問題に言及するだけでなく、その解決策も提供します。あなたがする必要があるのは、次のよう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);
于 2021-06-25T03:24:12.650 に答える