SpecField помечено @Serializable?
разве должно? Оно само по себе не должно сериализовыватся
List<@Serializable(with = SpecSerializer::class) SpecField>
Прикол в том, что у меня на входе примерно такая строка: 1 a 2 3 И мне её нужно преобразовать в List<SpecField>, а ваш вариант подразумевает что у меня там что-то такое: [SpecField(..), SpecField(..)]
Сейчас с ноута проверю
Почему вы with = не добавите в аннотацию? По-моему в примерах в доке там так указано
видел, но есть ли смысл в указании ? ну и проблема не в этом
действительно нет, сам пишу сериализатор на работе. спасибо!
вот указал, но опять же проблема не в with, а в том что оно ругается на SpecField в List<E>, хотя там уже повешен сериализатор именно для List<SpecField> Мне не нужно сериализовать голый SpecField, а List<SpecField>
да я не об этом, я об изначальной имплементации. дайте мне попробовать самому это написать. если заработает, я отвечу вам
а, тогда окей, спасибо
так, это действительно не будет работать. по идее во время сериализации у вас сериализуется сначала коллекция
тогда, что вообще можно сделать в моем случае? Я конечно могу сам это конвертить в рантайме, но хотелось бы на этапе сериализации такое сделать
понял, в таком случае создайте такой сериализатор: class SpecFieldSerializer: KSerializer<SpecField>
т.е, просто вешануть на SpecField сериализатор ? Просто, так-то кроме как дескриптору, он не нужен
хорошо, понял, думал просто, может есть какой-то более цивилизованный метод 😅
да нет, основная идея в том, что на каждый тип должен быть сериализатор😁 либо plugin-generated, либо свой
хм, хорошо, буду знать
Обсуждают сегодня