Hello I'm trying to store my json Response to My Model Class, But I'm getting an error "The data couldn’t be read because it isn’t in the correct format." My Api is working Perfectly fine, only issue is Not storing my data into Data Model Class.
Here's My Details
My Json Response
{
"flag": "1",
"message": "Data inserted.",
"customerId": "60",
"firstName": "fatehlal",
"lastName": "pra",
"animalName": "cat",
"isAround": "1",
"comapnyId": "2",
"company_logo": "http://192.168.1.228/public/img/logosign.png",
"company_name": "Admin",
"mobileNumber": "2345678901"
}
My Register Model
import Foundation
struct RegisterModel : Codable {
let flag : String?
let message : String?
let customerId : String?
let firstName : String?
let lastName : String?
let animalName : String?
let isAround : String?
let comapnyId : String?
let company_logo : String?
let company_name : String?
let mobileNumber : String?
enum CodingKeys: String, CodingKey {
case flag = "flag"
case message = "message"
case customerId = "customerId"
case firstName = "firstName"
case lastName = "lastName"
case animalName = "animalName"
case isAround = "isAround"
case comapnyId = "comapnyId"
case company_logo = "company_logo"
case company_name = "company_name"
case mobileNumber = "mobileNumber"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
flag = try values.decodeIfPresent(String.self, forKey: .flag)
message = try values.decodeIfPresent(String.self, forKey: .message)
customerId = try values.decodeIfPresent(String.self, forKey: .customerId)
firstName = try values.decodeIfPresent(String.self, forKey: .firstName)
lastName = try values.decodeIfPresent(String.self, forKey: .lastName)
animalName = try values.decodeIfPresent(String.self, forKey: .animalName)
isAround = try values.decodeIfPresent(String.self, forKey: .isAround)
comapnyId = try values.decodeIfPresent(String.self, forKey: .comapnyId)
company_logo = try values.decodeIfPresent(String.self, forKey: .company_logo)
company_name = try values.decodeIfPresent(String.self, forKey: .company_name)
mobileNumber = try values.decodeIfPresent(String.self, forKey: .mobileNumber)
}
}
My Alamofire Method
var registerDetail : RegisterModel?
AF.request("http://192.168.1.228/public/api/register", method: .post, parameters: param, encoding: JSONEncoding.default, headers: nil).response { response in
switch response.result {
case .success(let data) :
do {
print("SuccessFully Registerd")
debugPrint(response.response!)
let dataResponse = try JSONDecoder().decode(RegisterModel.self, from: data!)
self.registerDetail = dataResponse
} catch let error {
debugPrint(error.localizedDescription)
}
case .failure(let error):
print(error)
}
}
given your data, use: let isAround : Int?