2019年7月15日月曜日

KotlinのHttp ClientのFuelでレスポンスをJacksonでデシリアライズする

FuelでレスポンスのjsonをJacksonでデシリアライズする方法

依存ライブラリ

  implementation("com.github.kittinunf.fuel:fuel:2.1.0")
  implementation("com.github.kittinunf.fuel:fuel-coroutines:2.1.0")
  implementation("com.github.kittinunf.fuel:fuel-jackson:2.1.0")

サンプル

responseObjectにjacksonDeserializerOfを指定する子でJacksonを使ったデシリアライズが行われる。
fun main() {
    "https://jsonplaceholder.typicode.com/todos/1"
            .httpGet()
            .responseObject(jacksonDeserializerOf()) { request, response, result ->
                println("response.statusCode = ${response.statusCode}")
                println("result.component1() = ${result.component1()}")
                println("result.component2() = ${result.component2()}")
            }
            .join()
}

data class Result(
        val userId:Int,
        val id: Int,
        val title: String,
        val completed: Boolean
)