1. ホーム
  2. android

[解決済み] デフォルト構成のようなCreatorが存在しない):Objectの値からデシリアライズできない(デリゲートまたはプロパティベースのCreatorが存在しない

2022-04-21 10:08:35

質問

RetrofitとJacksonを使用してAPIを消費し、デシリアライズしようとしています。次のような onFailure エラーが発生します。 No Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator .

解決方法は?

理由を教えてください。 このエラーは、空のコンストラクタを持たないモデルを作成する方法を jackson ライブラリが知らないため、また、パラメータを持つコンストラクタを含むモデルで、そのパラメータにアノテーションを付けていないため発生します。 @JsonProperty("field_name") . Java コンパイラは、クラスにコンストラクタを追加しなかった場合、デフォルトで空のコンストラクタを作成します。

解決策 モデルに空のコンストラクタを追加するか、コンストラクタのパラメータに @JsonProperty("field_name")

Kotlin のデータクラスを使用する場合、アノテーションを使用することもできます。 @JsonProperty("field_name") または JACKSON モジュール KOTLIN から ObjectMapper .

モデルを作成するには http://www.jsonschema2pojo.org/ .