我在Swift Playground中使用以下代码
import Foundation
struct PlayerInfo: Decodable{
var PlayerID: String = ""
var FirstName: String = ""
var LastName: String = ""
}
var rosterRequest = PlayerRequest()
rosterRequest.loadPlayers()
class PlayerRequest{
var players: [PlayerInfo] = []
func loadPlayers(){
guard let url = URL(string: "https://api.sportsdata.io/v3/nba/scores/json/Players?key=<key>") else {
print("Invalid URL")
return
}
let request = URLRequest(url: url)
URLSession.shared.dataTask(with: request) { data, response, error in
if let mydata = data {
print(mydata)
if let players = try? JSONDecoder().decode([PlayerInfo].self, from: mydata){
DispatchQueue.main.async {
for player in players{
print(player.LastName)
}
}
return
}
print("Fetch failed: \(error?.localizedDescription ?? "Unknown error")")
}
}.resume()
}
}我知道我得到数据是因为它打印了长度,但当它解析数据时,它就失败了。
任何帮助都将不胜感激。
当我通过Rested运行请求时,我得到:
[
{
"PlayerID": 20000441,
"SportsDataID": "",
"Status": "Active",
...
},
{
"PlayerID": 20000442,
"SportsDataID": "",
"Status": "Active",
...
}
...
]发布于 2020-11-06 09:32:28
我想通了。PlayerID是一个整数,我把它定义为一个字符串
https://stackoverflow.com/questions/64707235
复制相似问题