Estou migrando meu aplicativo Android para multiplataforma e tenho uma classe abstrata com quatro classes filhas.
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes(value = [
JsonSubTypes.Type(value = Image::class, name = "image"),
JsonSubTypes.Type(value = Video::class, name = "video"),
JsonSubTypes.Type(value = Audio::class, name = "audio"),
JsonSubTypes.Type(value = Text::class, name = "text")
])
abstract class Data: MyParcelable {
...
}
Adicionei as seguintes dependências ao commonMain:
implementation(libs.jackson.module.kotlin)
implementation(libs.jackson.datatype.jsr310)
implementation(libs.jackson.annotation)
Infelizmente, não consigo importar pacotes com.fasterxml.* quando iosX64 ou iosArm64 está ativo como destino.
Não consigo encontrar nenhuma declaração se fasterxml jackson é suportado para desenvolvimento multiplataforma para ios e desktop. Você tem informações sobre como usar as anotações em projetos kmp?
Jackson é escrito em Java , não em Kotlin.
Dessa forma, ele oferecerá suporte a destinos JVM e Android, mas não espero que esteja disponível para iOS ou Web (Wasm ou JS).
Você pode considerar a serialização do kotlinx , junto com esta biblioteca para suporte a XML.