Swift 5 Decode json string и заполнение таблицы - PullRequest
0 голосов
/ 21 октября 2019

Я получаю следующую ошибку при попытке декодировать строку JSON в Struct и отобразить результаты в виде таблицы: "Ожидается декодирование массива, но вместо этого найдена строка / данные."

У меня есть следующая структура:

struct UserModel: Decodable {
        let userID: String
        let fullName: String
        let emailAddr: String
    }

, и я получаю данные из API (используя Alamofire) с помощью:

Alamofire.request("http://myURL")
        .responseString(completionHandler: { (response) in
            switch response.result {
            case .success(let resultJSON):
                print(resultJSON)
                do {
                    let jsonData = resultJSON.data(using: .utf8)!
                    let users = try! JSONDecoder().decode(Array<UserModel>.self, from: jsonData ) <== ERRORS HERE

                    for user in users {
                        print(user.userID)
                        print(user.fullName)
                        print(user.emailAddr)
                        self.users.append(user)
                    }
                 } 
                self.tableView.reloadData()

            case .failure(let error):
                print(error.localizedDescription)
            }
        })
}

Строка JSON, которую я получаю от APIis:

"[{\" userID \ ": \" user1 \ ", \" fullName \ ": \" User One \ ", \" email \ ": \" user1 @ mydomain.com \ "}, {\" userID \ ": \" user2 \ ", \" fullName \ ": \" User Two \ ", \" email \ ": \" user2@mydomain.com \ "}]"

...