Это как раз простая задача. Ровно так из коробки и работает. Надо только на классе указать @SerialName с той строкой, которая в “type”
Я так понял, что надо сериализовать то, у чего в корне _metadata, так что type не на топ-левеле, на уровень ниже. Я не помню, умеет ли ключ кастомного типа во вложенность
да, именно это и смущает, что надо глубже копнуть сперва
Есть вот такая штука: https://github.com/Kotlin/kotlinx.serialization/blob/master/docs/json.md#class-discriminator. Но вот я не уверен, что там вложенность возможна.
А в чем проблема сделать объект с нужными полями и его как поле подставить? Ну типа metadata: MetadataObject?
мне надо десериализовать только, что уже от чужого АПИ получаю
а, это я уже сделал конечно но получаю просто поле __metadata в зависимости от значения которого и надо выбирать полиморфный класс
т.е. у меня полиморфизм в зависимости не от строки на верхнем уровне а от поля вложенного объекта (__metadata.type а не просто type)
Но, кстати вот то, что Саша предлагает вроде то, что надо прям
Обсуждают сегодня