デフォルトコンストラクトのようなクリエーターは存在しません): オブジェクト値からデシリアライズできません (デリゲートベースまたはプロパティベースのクリエーターはありません) 質問する

デフォルトコンストラクトのようなクリエーターは存在しません): オブジェクト値からデシリアライズできません (デリゲートベースまたはプロパティベースのクリエーターはありません) 質問する

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")登録したりすることもできます。ジャクソン モジュール KotlinObjectMapper

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

おすすめ記事