Прежде всего, я действительно новичок в Swift.Я застрял на несколько часов в этом.
Вот проблема, я использую AlamoFire для того, чтобы сделать мой запрос
func getListFiles(userId: String, page: Int)
{
let parameters: Parameters = [
"userId": userId,
"page": page
]
Alamofire.request(baseUrl + Endpoints.GET_RECORDS.rawValue, method: HTTPMethod.post, parameters: parameters)
.responseData { response in
if let result = response.result.value{
do {
let data = try JSONDecoder().decode(ListFilesStruct.self, from: result)
} catch {
print("\(error)")
}
}
}
}
, и я хочу сохранить ответ данных в моей структуре"ListFilesStruct".Но он входит в «catch» и завершается с ошибкой
Printing description of error:
▿ DecodingError
▿ typeMismatch : 2 elements
- .0 : Swift.Dictionary<Swift.String, Any>
▿ .1 : Context
▿ codingPath : 3 elements
- 0 : CodingKeys(stringValue: "data", intValue: nil)
▿ 1 : _JSONKey(stringValue: "Index 6", intValue: 6)
- stringValue : "Index 6"
▿ intValue : Optional<Int>
- some : 6
- 2 : CodingKeys(stringValue: "expert", intValue: nil)
- debugDescription : "Expected to decode Dictionary<String, Any> but found a string/data instead."
- underlyingError : nil
Вот основная структура, я хочу массив FileDetail
struct ListFilesStruct: Codable
{
var success: Bool?
var data: [FileDetail]?
}
struct FileDetail: Codable
{
var id: String?
var expert: FileElement?
}
И он точно дает сбой из-за структуры FileElement, яне знаю, почему
struct FileElement: Codable
{
var id: String?
var role_id: String?
var avatar: String?
var nom: String?
var prenom: String?
}
Я действительно хочу хранить данные Webservice, спасибо
РЕДАКТИРОВАТЬ: Ожидаемый JSON:
{
"success": true,
"data": [
{
"id": "A19007994",
"expert": {
"id": "74EJEEZM",
"role_id": "EXPERT",
"avatar": null,
"nom": "METRTALZ",
"prenom": "JEREMIE",
}
}
]
}