I am getting JSON
data by using Codable
method. Here, In my JSON response most of the values receiving as a String
but sometime it received Int
. on that time I am getting Decoding
Error like below
TypeMismatch(Swift.String, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "data", intValue: nil), CodingKeys(stringValue: "status", intValue: nil)], debugDescription: "Expected to decode String but found a number instead.", underlyingError: nil))
Codable
// MARK: - Welcome
struct Welcome: Codable {
let status: Bool
let data: DataClass
}
// MARK: - DataClass
struct DataClass: Codable {
let memberID, groupID, memberName, dataDescription: String
let duedate, team, member: String
let membergroup: JSONNull?
let teams, category, junction, grouptype: String
let typegroup, groupMethod, memberCD, checklist: String
let refID, startDate, createdBy, createdDate: String
let startedBy: JSONNull?
let startedDate: String
let submittedBy, submittedDate, completedBy: JSONNull?
let completedDate, extendDate: String
let editedBy: JSONNull?
let editedDate: String
let status: Int
let autotask, isdelete, timestamp, assignedMember: String
let teamName, gemID, gemName, ticketName: String
let ticketTypeName, ableToDelete, assignedForMe, priorityFlag: String
let taskTypeFlag: String
let comments, notification, reminder: [JSONAny]
let acceptOrDecline: String
let availableStatus: [AvailableStatus]
let editedUserName: String
enum CodingKeys: String, CodingKey {
case memberID = "member_id"
case groupID = "group_id"
case memberName = "member_name"
case dataDescription = "description"
case duedate, team, member, membergroup, teams, category, junction, grouptype, typegroup
case groupMethod = "group_method"
case memberCD = "member_cd"
case checklist
case refID = "ref_id"
case startDate = "start_date"
case createdBy = "created_by"
case createdDate = "created_date"
case startedBy = "started_by"
case startedDate = "started_date"
case submittedBy = "submitted_by"
case submittedDate = "submitted_date"
case completedBy = "completed_by"
case completedDate = "completed_date"
case extendDate = "extend_date"
case editedBy = "edited_by"
case editedDate = "edited_date"
case status, autotask, isdelete, timestamp
case assignedMember = "assigned_member"
case teamName = "team_name"
case gemID = "gem_id"
case gemName = "gem_name"
case ticketName = "ticket_name"
case ticketTypeName = "ticket_type_name"
case ableToDelete = "able_to_delete"
case assignedForMe = "assigned_for_me"
case priorityFlag = "priority_flag"
case taskTypeFlag = "task_type_flag"
case comments, notification, reminder
case acceptOrDecline = "accept_or_decline"
case availableStatus = "available_status"
case editedUserName = "edited_user_name"
}
}
// MARK: - AvailableStatus
struct AvailableStatus: Codable {
let id: Int
let name, displayName, icon: String
enum CodingKeys: String, CodingKey {
case id, name
case displayName = "display_name"
case icon
}
}