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)