尝试将 Json 数据解析为模型 Class 使用可编码时出现此错误
Trying to parse Json data into model Class this getting error while using codable
正在尝试将 Json 数据解析到模型 Class“TimeSheetModel”中,但出现以下错误。
typeMismatch(Swift.String, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "error", intValue: nil)], debugDescription: "预期解码字符串但发现字典代替。”, underlyingError: nil))
响应数据Json
{
"code": 200,
"message": null,
"error": null,
"data": {
}
}
// 标记:- TimeSheetModel
struct TimeSheetModel: Codable {
let code: Int?
let message: String?
let error: String?
let timeSheetModel_Data: TimeSheetModel_Data?
enum CodingKeys: String, CodingKey {
case code = "code"
case message = "message"
case error = "error"
case timeSheetModel_Data = "data"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
code = try values.decodeIfPresent(Int.self, forKey: .code)
message = try values.decodeIfPresent(String.self, forKey: .message)
error = try values.decodeIfPresent(String.self, forKey: .error)
timeSheetModel_Data = try values.decodeIfPresent(TimeSheetModel_Data.self, forKey: .timeSheetModel_Data)
}
}
可能我必须处理 if else 编码模型中的字符串和 Int class。
如错误所述:let error: String?
错误 属性 应为 String
类型 - 但服务器 returns 为 Dictionary
。
您发布的 JSON 似乎有 null
,但可能由于不同的 JSON 数据而显示错误 - 一个有 error
对象。
正在尝试将 Json 数据解析到模型 Class“TimeSheetModel”中,但出现以下错误。
typeMismatch(Swift.String, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "error", intValue: nil)], debugDescription: "预期解码字符串但发现字典代替。”, underlyingError: nil))
响应数据Json
{
"code": 200,
"message": null,
"error": null,
"data": {
}
}
// 标记:- TimeSheetModel
struct TimeSheetModel: Codable {
let code: Int?
let message: String?
let error: String?
let timeSheetModel_Data: TimeSheetModel_Data?
enum CodingKeys: String, CodingKey {
case code = "code"
case message = "message"
case error = "error"
case timeSheetModel_Data = "data"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
code = try values.decodeIfPresent(Int.self, forKey: .code)
message = try values.decodeIfPresent(String.self, forKey: .message)
error = try values.decodeIfPresent(String.self, forKey: .error)
timeSheetModel_Data = try values.decodeIfPresent(TimeSheetModel_Data.self, forKey: .timeSheetModel_Data)
}
}
可能我必须处理 if else 编码模型中的字符串和 Int class。
如错误所述:let error: String?
错误 属性 应为 String
类型 - 但服务器 returns 为 Dictionary
。
您发布的 JSON 似乎有 null
,但可能由于不同的 JSON 数据而显示错误 - 一个有 error
对象。