Я пытаюсь разобрать это json {"value": [1, "a", "b"]} для тройного объекта. Гсон даже не называет мою десериализацию.
class TripleDeserializer: JsonDeserializer<Triple<Int, String, String>> {
override fun deserialize(
json: JsonElement?,
typeOfT: Type?,
context: JsonDeserializationContext?
): Triple<Int, String, String> {
val f = json!!.asJsonArray.get(0).asInt
val s = json.asJsonArray.get(1).asString
val t = json.asJsonArray.get(2).asString
return Triple(f, s, t)
}
}
class SomeClass(val value: Triple<Int, String, String>)
fun another() {
val input = "{\"value\": [1, \"a\", \"b\"] }"
val type = object : TypeToken<Triple<Int, String, String>>() {}.type
val gson = GsonBuilder()
.registerTypeAdapter(type, TripleDeserializer())
.create()
val out = gson.fromJson(input , SomeClass::class.java)
}