Ios 试图将Json数据解析到模型类中,在使用codable时出现此错误

Ios 试图将Json数据解析到模型类中,在使用codable时出现此错误,ios,swift,codable,Ios,Swift,Codable,试图将Json数据解析到模型类“TimeSheetModel”中,我遇到了以下错误 类型不匹配(Swift.String,Swift.DecodingError.Context(codingPath:[CodingKeys(stringValue:“error”,intValue:nil)],debugDescription:“应解码字符串,但找到字典。”,underlineerror:nil)) 响应数据Json { "code": 200, "m

试图将Json数据解析到模型类“TimeSheetModel”中,我遇到了以下错误

类型不匹配(Swift.String,Swift.DecodingError.Context(codingPath:[CodingKeys(stringValue:“error”,intValue:nil)],debugDescription:“应解码字符串,但找到字典。”,underlineerror:nil))

响应数据Json

{
    "code": 200,
    "message": null,
    "error": null,
    "data": {

    }
}
//马克:-时间表模型

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进行编码。

正如错误所说:
让错误:字符串?
错误属性应该是
字符串
类型-但服务器在那里返回
字典


您发布的JSON在那里似乎有
null
,但可能是由于不同的JSON数据而显示错误-其中有
error
对象。

您确定这是从服务器接收的JSON数据吗?您显示了一个空值(这对于字符串来说是可以的),但是错误表明您收到了一个字典。您不需要自定义
init
;默认的行为应该能帮到你。是的,我正在从服务器端接收到消息。你能不能不要只是
catch{print(error)}
,而是
catch{print(“JSON解码时出错:\(error)”,响应:\(字符串(数据:数据,编码:.utf8)))
?您似乎认为这就是您得到的JSON,但根据错误,它不是,所以在失败时打印JSON。是的!您是正确的。