У меня следующая проблема.

Использую запрос Alamofire. Ответ представляет собой JSON.

        Alamofire.request(url, method: .get).responseJSON {
        response in
        if response.result.isSuccess {

            print("Success! Got the korosztaly data")
            let koJSON : JSON = JSON(response.result.value!)


           print(koJSON)

        }
        else {
            print("Error \(String(describing: response.result.error))")
        }
    }

Результат koJSON следующий:

{ "members": [ {"name": "Sarah"}, {"name": "David"}, {"name": "Michael"} ] }

Я хочу создать массив Members и поместить в него все данные. Результат должен быть следующим

Members = ["Sarah", "David", "Michael"]

1
janosdupai 14 Фев 2018 в 16:55

1 ответ

Лучший ответ

Я предпочитаю использовать функцию карты. Он будет перебирать каждый элемент в массиве и позволит вам извлечь выбранную информацию или выполнить преобразование.

if let resp = response.result.value as? [String: AnyObject], 
      let membersArr = resp["members"] as? [[String: String]] {
   let members = membersArr.map { $0["name"] }
}

Вывод должен быть как положено.

Вы можете узнать больше о карте и других функциях высокого порядка здесь

3
Scriptable 14 Фев 2018 в 17:59