Sam Garfinkel
06/08/2020, 8:16 PMedenman
06/08/2020, 8:26 PMedenman
06/08/2020, 8:26 PMedenman
06/08/2020, 8:27 PM@Serializable(with = MyCustomSerializer::class)
edenman
06/08/2020, 8:28 PMedenman
06/08/2020, 8:29 PMval input =
decoder as? JsonInput ?: throw SerializationException("This class can be loaded only by Json")
val tree =
input.decodeJson() as? JsonObject ?: throw SerializationException("Expected JsonObject")
fieldNameToSerializer.forEach { (name, serializer) ->
if (tree.containsKey(name)) {
return input.json.fromJson(serializer, tree)
}
}
return unknown
edenman
06/08/2020, 8:29 PMoneof
over json where there’s no type
field, just a “one of these fields will be set” approach)Sam Garfinkel
06/08/2020, 8:29 PM