Created
November 24, 2017 08:54
-
-
Save lovubuntu/c52c9e30f4bb111670c521387ef4471a to your computer and use it in GitHub Desktop.
Simple Deserializer for fuel
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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