我正在尝试从该网站获取 NBA 排名 https://erikberg.com/api 为此,我使用 AlmoFire 发出 Get 请求:
Alamofire.request(.GET, "https://erikberg.com/nba/standings.json")
.responseJSON { 响应
打印(响应.2.值)
}
返回的是一个响应数组,在索引 0 处有一个 NSURLRequest,在索引 1 处有一个 NSHTTPURLResponse,在索引 2 处有一个 AnyObject 类型的结果。AnyObject 在打印时会产生这个结果(我只展示了一个team 因为数组很长):
可选({
站立=(
{
"away_lost"= 14;
"away_won"= 21;
session =东;
“conference_lost”= 13;
"conference_won"= 29;
除法 = CEN;
“名字”=克利夫兰;
“games_back”= 0;
“玩过的游戏”= 71;
“home_lost”= 6;
“home_won”= 30;
"last_five"= "4-1";
"last_name"= 骑士队;
"last_ten"= "7-3";
丢失 = 20;
"ordinal_rank"= 1st;
“季后赛种子”= 1;
“点差”= 437;
"point_differential_per_game"= "6.2";
"points_against"= 6948;
"points_allowed_per_game"= "97.9";
"points_for"= 7385;
"points_scored_per_game"= "104.0";
等级 = 1;
连胜 = W2;
“连胜总数”= 2;
“连胜类型”=获胜;
"team_id"= "克利夫兰骑士队";
"win_percentage"= ".718";
赢 = 51;
},exc...
我想知道如何解析这些数据,以便我可以提取每个团队并根据他们的排名对其进行分类。 谢谢
最佳答案
您可以使用 ObjectMapper解析 JSON。创建一个包含所有 JSON 到对象映射代码的 Standing 类。
class Standing: Mappable {
var awayLost: Int?
var awayWon: Int?
..... // Define all variables
required init?(_ map: Map) {}
// This function is used to map all variables to corresponding JSON strings
func mapping(map: Map) {
awayLost <- map["away_lost"]
awayWon <- map["away_won"]
...
}
同理,创建一个父类来保存standing数组。
class ParentJson: Mappable {
var standingsDate: String?
var standing: [Standing]
}
func mapping(map: Map) {
standing <- map["standing"]
}
然后在你的 alamofire 响应中,映射相应的类
Alamofire.request(.GET, "https://erikberg.com/nba/standings.json")
.responseJSON { response in
let parentJson = Mapper<ParentJson>().map(response.2.value)
let standingsArray: [Standing] = parentJson.standing
standingArray 现在将拥有分类所需的所有数据。
关于ios - 如何在 xcode 中解析和分类来自 AlamoFire 的 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36214611/