刚刚向我介绍了在我的iOS应用程序中使用JSON数据。我使用了一项服务来解析网站中的JSON数据,并且希望对该数据进行解码,以UITableView
显示给我的用户。我的JSON数据如下所示:
{
"success": true,
"outputScenario": "Default",
"data": {
"collection": [
{
"teamName": "Gulf Coast Monarchs, FL",
"teamW": "10",
"teamL": "0",
"teamT": "0",
"teamPct": "1.000",
"teamGB": "-",
"teamGP": "10",
"teamRA": "10",
"teamDivision": "10-0-0"
},
{
"teamName": "Ohio Nationals, OH",
"teamW": "9",
"teamL": "1",
"teamT": "0",
"teamPct": ".900",
"teamGB": "1.0",
"teamGP": "10",
"teamRA": "20",
"teamDivision": "9-1-0"
}, {
"teamName": "Mount Kisco Chiefs, NY",
"teamW": "0",
"teamL": "8",
"teamT": "0",
"teamPct": ".000",
"teamGB": "8.0",
"teamGP": "8",
"teamRA": "108",
"teamDivision": "0-8-0"
}
{
"teamName": "Mount Kisco Chiefs, NY",
"teamW": "0",
"teamL": "8",
"teamT": "0",
"teamPct": ".000",
"teamGB": "8.0",
"teamGP": "8",
"teamRA": "108",
"teamDivision": "0-8-0"
}
]
},
请记住,我已经裁剪了JSON中提供的大量数据,因此很容易查看。
我想尽可能地使用SwiftyJSON解码此数据,以便可以将其显示在
UITableView
中给我的用户。目前,UITableView将在team name
中显示UITableView.textLabel.text
,在teamW
中显示teamL
和UITableView.detailTextLabel.text
。如何使用SwiftyJSON解码此数据?我正在努力弄清楚如何解码这种类型的结构。我想使用我创建的模型:struct Standing: Decodable {
var teamName: String
var teamW: Int
var teamL: Int
var teamT: Int
var teamPct: Int
teamGB: Int
teamGP: Int
teamRA: Int
teamDivision: String
}
最佳答案
为什么要使用SwiftyJSON
来使用Decodable
?
您的结构中的类型是错误的,因为所有值都是String
。而且您还需要其他两个父对象结构。
struct Root: Decodable {
let success : Bool
let outputScenario : String
let data : TeamData
}
struct TeamData: Decodable {
let collection : [Standing]
}
struct Standing: Decodable {
let teamName, teamW, teamL, teamT: String
let teamPct, teamGB, teamGP, teamRA: String
let teamDivision: String
}
解码数据,
Standing
数组位于变量standings
中。do {
let result = try JSONDecoder().decode(Root.self, from: data)
let standings = result.data.collection
} catch {
print(error)
}
关于ios - 如何使用SwiftyJSON读取数组中的JSON数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61066558/