Swift ObjectMapper 在没有更多上下文的情况下不断返回不明确的内容
Swift ObjectMapper keeps returning ambiguous without more context
我正在尝试将 Swift 3 与 (ObjectMapper) 一起使用,以根据给定的 JSON 响应映射 players
数组 [=41] =] 对象称为 "Player";但我发现很难映射它。
// Sample JSON
{
"_meta": {
...
},
"fixtures": [{
...
}],
"players": [{
"name": "Smith",
"id": "15475-9524",
}]
}
但是,我发现很难让它理解如何正确映射,因为它总是抱怨它需要更多上下文。
我希望我的 JSON 消费者为我提供玩家列表,然后使用 Object Mapper 将所有玩家映射到一个数组中。
当我使用
var players : Array<Player> = Mapper<Player>().mapArray(JSONArray: res)
抱怨
Type of expression is ambiguous without more context
我的class如下
class Player: NSObject, Mappable {
var name: String?
required init?(map: Map) {
super.init()
}
// Mappable
func mapping(map: Map) {
name <- map["name"]
}
}
我正在使用 AlamoFire 消耗 JSON。
Alamofire.request(url).responseJSON(completionHandler: {
response in
switch response.result {
case .success(let JSON):
guard let res = JSON as? [String:Any] else {
print ("Can't do this")
return
}
var players : Array<Player> = Mapper<Player>().mapArray(JSONArray: res)
print (players)
break
case .failure(let error):
print("** Request failed with error: \(error) **")
break
}
我不太明白如何在我想要获取的数组上使用 ObjectMapper。
任何帮助都会很好。
我认为您将 JSON 字典与播放器数组混淆了。
试试这个:
guard let res = JSON as? [String:Any] else {
print ("res:Can't do this")
return
}
guard let json_players = res["players"] as? [[String:Any]] else {
print ("json_players:Can't do this")
return
}
var players : Array<Player> = Mapper<Player>().mapArray(JSONArray: json_players)
我正在尝试将 Swift 3 与 (ObjectMapper) 一起使用,以根据给定的 JSON 响应映射 players
数组 [=41] =] 对象称为 "Player";但我发现很难映射它。
// Sample JSON
{
"_meta": {
...
},
"fixtures": [{
...
}],
"players": [{
"name": "Smith",
"id": "15475-9524",
}]
}
但是,我发现很难让它理解如何正确映射,因为它总是抱怨它需要更多上下文。
我希望我的 JSON 消费者为我提供玩家列表,然后使用 Object Mapper 将所有玩家映射到一个数组中。
当我使用
var players : Array<Player> = Mapper<Player>().mapArray(JSONArray: res)
抱怨
Type of expression is ambiguous without more context
我的class如下
class Player: NSObject, Mappable {
var name: String?
required init?(map: Map) {
super.init()
}
// Mappable
func mapping(map: Map) {
name <- map["name"]
}
}
我正在使用 AlamoFire 消耗 JSON。
Alamofire.request(url).responseJSON(completionHandler: {
response in
switch response.result {
case .success(let JSON):
guard let res = JSON as? [String:Any] else {
print ("Can't do this")
return
}
var players : Array<Player> = Mapper<Player>().mapArray(JSONArray: res)
print (players)
break
case .failure(let error):
print("** Request failed with error: \(error) **")
break
}
我不太明白如何在我想要获取的数组上使用 ObjectMapper。
任何帮助都会很好。
我认为您将 JSON 字典与播放器数组混淆了。
试试这个:
guard let res = JSON as? [String:Any] else {
print ("res:Can't do this")
return
}
guard let json_players = res["players"] as? [[String:Any]] else {
print ("json_players:Can't do this")
return
}
var players : Array<Player> = Mapper<Player>().mapArray(JSONArray: json_players)