Здравствуйте. Очень долго разбирался как обработать JSON результат запроса на сервер с помощью Alamofire.
У меня возвращается Json в котором есть внутренние json строки.
В массивном представлении мой JSON имеет вид:
var myArray = ["People0" : ["id": "1", "Name": "Alex"], "People1" : ["id": "2", "Name": "Serg"]] и т.д.
Я только разбираюсь с Swift и работа с JSON показалась мне в нем невероятно сложной. Единственный рабочий для меня способ выглядит так:
let parameters: Parameters = ["parametr1": "1", "parametr2": "2", "parametr3": "3"]
Alamofire.request("http://link.php", method: .post, parameters: parameters).responseJSON { response in
switch response.result {
case .success:
if let objJson = response.result.value as! NSDictionary? {
//for element in objJson {
for index in 0...(objJson.count)-1 {
let data = objJson["People" + String(index)] as! String
let dataNS = data.data(using: .utf8)
do {
let cont = try JSONSerialization.jsonObject(with: dataNS!, options: []) as? [String: Any]
let contData = cont as! [String:String]
self.names.append(String((index + 1)) + ". " + contData["Name"]!)
self.ids.append(Int(contData["id"]!)!)
} catch {
}
}
self.tableView.reloadData()
}
case .failure( _):
var errorString = "NULL"
if let data = response.data {
if let json = try? JSONSerialization.jsonObject(with: data, options: []) as! [String: String] {
errorString = json["error"]!
}
}
}
}
Мне кажется что мой код можно было реализовать и гораздо проще, но я не знаю как. Надеюсь на вашу помощь. Спасибо.