【发布时间】:2021-06-30 13:07:48
【问题描述】:
我有以下数据类来解析 JSON。我可以使用decodeFromString 方法轻松解析它。但是,Info 类可以不时包含List<Int> 类型以及Int 类型,以便两者都包含在单个JSON 中。如何处理这种序列化变化?
@Serializable
data class Node (@SerialName("nodeContent") val nodeContent: List<Info>)
@Serializable
data class Info (@SerialName("info") val info: Int)
附言最接近我的问题是这个:Kotlinx Serialization, avoid crashes on other datatype。不知道有没有其他方法?
编辑: 下面给出一个例子。
"nodeContent": [
{
"info": {
"name": "1",
},
},
{
"info": [
{
"name": "1"
},
{
"name": "2"
},
],
},
{
"info": {
"name": "2",
},
}
]
【问题讨论】:
-
那么
info的类型会变化吗?或者您是说不时包含nodeContent(可选字段)? -
@xjcl Info 的内容对于某些是
Int,对于其他是List<int>。 -
你能举出两个示例 JSON 字符串吗?
-
@xjcl 我添加了一个示例 json。
-
info有时是 JSONObject 有时是 JSONArray。
标签: json kotlin serialization kotlinx.serialization