我一直在使用Kotlinx.serialization,并且一直在尝试解析一个子字符串:
给定一个JSON,例如:
{
"Parent" : {
"SpaceShip":"Tardis",
"Mark":40
}
}
我的代码是这样的:
data class SomeClass(
@SerialName("SpaceShip") ship:String,
@SerialName("Mark") mark:Int)
显然,由于“SpaceShip”和“Mark”对不在JSON的根中,因此
Json.nonstrict.parse(SomeClass.serializer(), rawString)
将失败。如何使序列化程序引用JSON的子树?
附注:您会建议改型吗(因为它比较老,也许更成熟)?
最佳答案
import kotlinx.serialization.*
import kotlinx.serialization.json.Json
@Serializable
data class Parent(
@SerialName("Parent")
val parent: SomeClass
)
@Serializable
data class SomeClass(
@SerialName("SpaceShip")
val ship:String,
@SerialName("Mark")
val mark:Int
)
fun main() {
val parent = Json.parse(Parent.serializer(), "{\"Parent\":{\"SpaceShip\":\"Tardis\",\"Mark\":40}}")
println(parent)
}
关于json - 使用Kotlinx.Serialization解析嵌套的JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55412451/