Я пытаюсь использовать Swift 3 с (ObjectMapper) для сопоставления массива players
из заданного ответа JSON на объект класса cut, называемый «Player»; но мне трудно его сопоставить.Swift ObjectMapper продолжает возвращаться неоднозначно без дополнительного контекста
// 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 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 для массива, который я хочу извлечь.
Любая помощь на этом будет хорошей.
Хорошо, будет делать. Я раньше не использовал ObjectMapper и хотел отдать его, поскольку я всегда делал разбор вручную. – zardon
Это работало, большое спасибо; хотя он жаловался на необязательное значение, которое не разворачивается; поэтому изменил его на 'let players: Array = Mapper () .mapArray (JSONArray: json_players)!' –
zardon