
[英]How to serialize/deserialize object in android with LinkedList of other custom objects inside?
[英]How to Serialize objects of same type within an object?
我想将以下 JSON 片段结构化/转换为 Kotlin 数据类,以便我可以在进一步表示中使用它。 有点期望玩家列表和每个对象都是玩家,现在我发现很难序列化相同类型的这种情况。
"Players": {
"63084": {
"Position": "1",
"Name_Full": "Imam-ul-Haq",
"Batting": {
"Style": "LHB",
"Average": "60.66",
"Strikerate": "81.54",
"Runs": "910"
},
"Bowling": {
"Style": "LB",
"Average": "0",
"Economyrate": "0",
"Wickets": "0"
}
},
"57492": {
"Position": "2",
"Name_Full": "Fakhar Zaman",
"Batting": {
"Style": "LHB",
"Average": "55.25",
"Strikerate": "96.64",
"Runs": "1326"
},
"Bowling": {
"Style": "SLO",
"Average": "88",
"Economyrate": "4.75",
"Wickets": "1"
}
},
"59429": {
"Position": "3",
"Name_Full": "Babar Azam",
"Batting": {
"Style": "RHB",
"Average": "50.6",
"Strikerate": "84.4",
"Runs": "2328"
},
"Bowling": {
"Style": "OB",
"Average": "0",
"Economyrate": "0",
"Wickets": "0"
}
}
}
可以做这样的事情:
@SerializedName("63084")
val player: Player
甚至对每个 id 重复都感觉效率不高,甚至每个玩家的 id 都是动态的和不同的。 这里肯定漏掉了一些重要的东西。
API: https : //cricket.yahoo.net/sifeeds/cricket/live/json/sapk01222019186652.json
您使用的 API 有点不标准,但您可以将 Players 字段映射到 Map<String, Player> ,例如:
data class Player(
@SerializedName("Position")
val position: String,
@SerializedName("Name_Full")
val name: String
...)
进而:
@SerializedName("Players")
val player: Map<String, Player>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.