2016-05-22 16 views
1

私はList<Response<? extends Data>>を持っています。これはJacksonを使ってファイルにシリアライズしています。限定されたタイプのデシリアライズする

どのように私はそれを逆シリアル化できますか?私が得ることができるのはちょうどList.classで、私には十分ではありません。

この質問にもっとコードが必要な場合は、教えてください。

+0

使用していたserialize APIも、デシリアライズAPIを提供していませんか? –

+0

それはありますが、バインドされた型を動的に逆直列化する方法がわかりません – Nati

+0

あなたのケースでは、直列化されたオブジェクトにキャストする必要があります。データを拡張します。 –

答えて

0

TypeReferenceオブジェクトを使用してジェネリック型をデシリアライズしてみてください。 TypeReferenceオブジェクトを使用すると、逆シリアル化するタイプを記述できます。

mapper.readValue(json, new TypeReference<List<Response<? extends Data>>>() {}); 

この一般的な抽象クラスは、サブクラス化することによって、完全なジェネリックタイプの情報を取得するために使用されます。

+0

'にキャストすることはできません。com.fasterxml.jackson.databind.JsonMappingException:データのインスタンスを構築できません。問題:抽象型は、具体的な型にマップするか、カスタムデシリアライザを持つか、インスタンス化する必要があります追加のタイプ情報を持つ at ... ' – Nati

関連する問題