class Response{ @SerializedName("val") val val<Val>? = null } っていうモデルだとうまくいかない。形式が異なるのでエラーになる。 そこでJsonDeserializerを使う。 以下のようにjsonMappingのタイミングでリマップする。 class ValRequestDeserializer:JsonDeserializer<Response>{ override fun deserialize(json: JsonElement?, typeOfT: Type?, context: JsonDeserializationContext?): Response { // ここでjsonが配列かオブジェクトか判定して配列にリマップする return context!!.deserialize(json, Response::c