【发布时间】:2021-07-16 21:30:42
【问题描述】:
下面是来自服务器的响应示例。
该列表由在info 字段中具有异构子结构的元素组成。它们每个都包含 3 个具有相同类型的字段,但它们具有不同的键。
我不知道如何解码,到目前为止我还没有遇到过这样的问题。我在 Internet 上找不到适合这种情况的示例。
一开始想解码枚举type,并根据它选择合适的info结构,但是不行。
非常感谢您的帮助。
{
"data":[
{
"type":"league",
"info":{
"name":"NBA",
"sport":"Basketball",
"website":"https://nba.com/"
}
},
{
"type":"player",
"info":{
"name":"Kawhi Leonard",
"position":"Small Forward",
"picture":"https://i.ibb.co/b5sGk6L/40a233a203be2a30e6d50501a73d3a0a8ccc131fv2-128.jpg"
}
},
{
"type":"team",
"info":{
"name":"Los Angeles Clippers",
"state":"California",
"logo":"https://logos-download.com/wp-content/uploads/2016/04/LA_Clippers_logo_logotype_emblem.png"
}
}
]
}
【问题讨论】:
-
我推荐一个具有关联类型的枚举,如描述的here
-
你能知道什么是所有可能的键吗?如果是,那么您可以将它们全部声明为可选项。
-
@AhmadF 我知道所有类型,但是将所有字段声明为可选项不是一种选择 - 代码库会增长太快。
-
@vadian,我听从了你的建议,创建了以下代码 sn-p:pastebin.com/S3uSXgtU 2 个枚举不是一团糟吗?
标签: arrays json swift decodable