小编Pla*_*ato的帖子

使用 kotlinx.serialization 库反序列化具有不同值类型的 JSON 数组

我正在尝试反序列化以下字符串:

 val stringJson = "{\"decomposed\":[\", \",{\"id\":4944372,\"name\":\"Johny\",\"various\":false,\"composer\":false,\"genres\":[]}]}"
   
Run Code Online (Sandbox Code Playgroud)

使用以下代码反序列化工作正常

@Serializable
data class Artist(
    val decomposed: JsonArray
)

fun main() {
    val jsonString = "{\"decomposed\":[\", \",{\"id\":4944372,\"name\":\"Johny\",\"various\":false,\"composer\":false,\"genres\":[]}]}"
    println(Json.decodeFromString<Artist>(jsonString))
}
Run Code Online (Sandbox Code Playgroud)

但我想做类似的事情

@Serializable
class Decomposed {
    @Serializable
    class DecomposedClassValue(val value: DecomposedClass)

    @Serializable
    class StringValue(val value: String)
}


@Serializable
data class DecomposedClass(
    val id: Long? = null,
    val name: String? = null,
    val various: Boolean? = null,
    val composer: Boolean? = null,
    val genres: JsonArray? = null
)

@Serializable
data class Artist(
    val decomposed: List<Decomposed>
)

fun …
Run Code Online (Sandbox Code Playgroud)

serialization json kotlin kotlinx.serialization

3
推荐指数
1
解决办法
1398
查看次数