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