在使用 responseDecodable 方法解析对象数组时,可能会遇到无法创建单个对象的情况,例如某些属性可能无法解析。此时,可以手动构建解析代码,以便更好地处理可能的错误。示例如下:
// 定义一个模型类 class Person: Codable { var name: String var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
// 在请求结果的处理方法中,手动解析对象数组 Alamofire.request(url, method: .get).responseJSON { (response) in do { let json = try JSONSerialization.jsonObject(with: response.data!, options: []) as! [[String: Any]] var persons = Person for item in json { if let name = item["name"] as? String, let age = item["age"] as? Int { let person = Person(name: name, age: age) persons.append(person) } else { // 处理无法解析的情况,例如属性缺失等 } } // 处理解析成功的对象数组 } catch let error { // 处理解析错误 } }