json - 使用Kotlinx.Serialization解析嵌套的JSON

标签 json parsing kotlin kotlinx.serialization

我一直在使用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/

相关文章:

json - JQ:筛选键

java - JAXB 使用 Woodstox 解析器来提高性能?

android - 弄清楚 'providerPackageName' 在 Health Connect 文档中的含义

java - 如何在 Kotlin 中添加 UTF-8 BOM?

kotlin - 为什么 Kotlin Result 会捕获 Throwables?

javascript - AngularJS JSONP TypeError : url. 替换不是函数

javascript - 无法让 jQuery 和 Web 服务很好地发挥作用

Android在线XML解析问题-SAX Parser

json - json 数组元素的总和和百分比

c# - Json.Net解析错误如何处理