微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用类数组表示 json 的 Kotlin 类应该是什么

如何解决用类数组表示 json 的 Kotlin 类应该是什么

给定以下 JSON:

{
"from": 1,"to": 3,"results": [
    {
        "item": {
            "status": "SUCCESS","statusMessage": "","requestId": "1"
        }
    },{
        "item": {
            "status": "SUCCESS","requestId": "2"
        }
    },"requestId": "3"
        }
    },"requestId": "4"
        }
    }
]}

为了使用 kotlinx.serialization.json.Json 进行反序列化,应该定义哪些正确的 Kotlin 类?

我试过了:

data class Response (
  val from: Long,val to: Long,val results: List<Result>
)

data class Result (
  val item: List<Item>
)

data class Item (
  val status: String,val statusMessage: String,val requestID: String
)

我的尝试没有正确描述项目列表。 我做错了什么?

解决方法

你的每一个 Result 都有一个 Item,键是 "item",所以应该是:

data class Result (
  val item: Item
)
,

您可以编写如下所示的类。

data class Temp(
    val from: Int,// 1
    val results: List<Result>,val to: Int // 3
) {
    data class Result(
        val item: Item
    ) {
        data class Item(
            val requestId: String,// 1
            val status: String,// SUCCESS
            val statusMessage: String
        )
    }
}
,

除了 Result 类之外,一切都很好。在 JSON 中,数组保存在方括号之间,如下所示:[a,b,c]。请注意,Result 中没有方括号。

不过,不要在这类问题上花费太多时间。改用 JSON 到 POJO 转换器。

https://json2csharp.com/json-to-pojo

此外,此 StackOverflow 链接可能很有用:

Create POJO Class for Kotlin

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。