в json и сохраняю в файл, у дочерних классов не прописан SerialName. Я переместил этот класс в другой пакет, теперь не парсится из "type":"foo.bar.Zoo", что достаточно логично. Вопрос вот в чём: понятно что можно проставить SerialName со старым пакетом и в будущем всем sealed классам прописывать SerialName сразу после создания, но есть ли какой-нибудь другой способ обойти эту проблему?
Ура, нашёл @Serializable sealed class Foo @Serializable object Bar : Foo() serializersModule = SerializersModule { polymorphicDefault(Foo::class) { className -> when (className) { "a.Bar" -> Bar.serializer() "b.Bar" -> Bar.serializer() else -> error("Unknown class: $className") } } }
Вообще лучше изначально не сериализовывать имена классов именно по этой причине
Да, но такая проблема уже есть
Обсуждают сегодня