Retrofit と Jackson を使用してデシリアライズし、API を使用しようとしています。onFailure エラーが発生しますNo Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator
。
ベストアンサー1
理由:このエラーは、Jackson ライブラリが空のコンストラクターを持たないモデルを作成する方法を知らず、そのモデルに、パラメーターに 注釈が付けられていないパラメーターを持つコンストラクターが含まれているために発生します@JsonProperty("field_name")
。デフォルトでは、クラスにコンストラクターを追加しなかった場合、Java コンパイラーは空のコンストラクターを作成します。
解決策:モデルに空のコンストラクタを追加するか、コンストラクタパラメータに@JsonProperty("field_name")
Kotlinデータクラスを使用する場合は、注釈を付けたり@JsonProperty("field_name")
登録したりすることもできます。ジャクソン モジュール KotlinにObjectMapper
。
モデルを作成するにはhttp://www.jsonschema2pojo.org/。