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 unknownedenman
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