fuel-kotlinx-serialization
The kotlinx-serialization extension package for Fuel
.
Installation
You can download and install fuel-kotlinx-serialization
with Maven
and Gradle
. The kotlinx-serialization package has the following dependencies:
Fuel
- KotlinX Serialization: 0.10.0
- implementation 'com.github.kittinunf.fuel:fuel:<latest-version>'
- implementation 'com.github.kittinunf.fuel:fuel-kotlinx-serialization:<latest-version>'
Usage
- @Serializabledata class HttpBinUserAgentModel(var userAgent: String = "")
Fuel.get("/user-agent") .responseObject<HttpBinUserAgentModel> { , , result -> }
This is by default strict and will reject unknown keys, for that you can pass a custom Json instance Json(strictMode = false)
or use a built-in alternate like Json.nonstrict
- @Serializabledata class HttpBinUserAgentModel(var userAgent: String = "")
Fuel.get("/user-agent") .responseObject<HttpBinUserAgentModel>(json = Json.nonstrict) { , , result -> }
kotlinx.serialization
can not always guess the correct serialzer to use, when generics are involved for example
- @Serializabledata class HttpBinUserAgentModel(var userAgent: String = "")
Fuel.get("/list/user-agent") .responseObject<HttpBinUserAgentModel>(loader = HttpBinUserAgentModel.serializer().list) { , , result -> }
It can be used with coroutines by using kotlinxDeserializerOf()
it takes the same json
and loader
as parameters
- @Serializabledata class HttpBinUserAgentModel(var userAgent: String = "")
Fuel.get("/user-agent") .awaitResponseObject<HttpBinUserAgentModel>(kotlinxDeserializerOf()) { , , result -> }