Skip to content

Instantly share code, notes, and snippets.

@lovubuntu
Created November 24, 2017 08:54
Show Gist options
  • Save lovubuntu/c52c9e30f4bb111670c521387ef4471a to your computer and use it in GitHub Desktop.
Save lovubuntu/c52c9e30f4bb111670c521387ef4471a to your computer and use it in GitHub Desktop.
Simple Deserializer for fuel
import com.github.kittinunf.fuel.core.ResponseDeserializable
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.google.gson.JsonDeserializer
import com.google.gson.reflect.TypeToken
class Block() {
class Deserializer : ResponseDeserializable<Block> {
override fun deserialize(reader: Reader) = Gson().fromJson(reader, Block::class.java)
}
class ListDeserializer : ResponseDeserializable<ArrayList<Block>> {
override fun deserialize(reader: Reader): ArrayList<Block> {
val builder = GsonBuilder()
// Register an adapter to manage the date types as long values
builder.registerTypeAdapter(Date::class.java, JsonDeserializer<Date> { json, typeOfT, context -> Date(json.asJsonPrimitive.asLong) })
val gson = builder.create()
val type = object : TypeToken<ArrayList<Block>>() {}.type
return gson.fromJson(reader, type)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment