简体   繁体   中英

How to Store Json Response Of Registration API ? and Getting error of "The data couldn’t be read because it isn’t in the correct format."

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?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM