You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

类型'AllImage'未遵循'Decodable'/'Encodable'协议的解决办法

问题解决方案

你遇到的报错核心原因是:AllImage结构体的CodingKeys枚举中声明了ctaInfo = "cta_info"这个编码键,但结构体本身并没有定义对应的ctaInfo属性。Codable协议要求编码/解码的键必须和结构体的属性一一对应,这种不匹配直接导致了协议不兼容的错误。

针对这个问题,有两种明确的解决方案:

  • 方案一:如果接口返回的JSON中确实包含cta_info字段,且需要解析这个字段,就在结构体中添加对应的可选属性:
struct AllImage: Codable {
    let mediaReferenceID: String?
    let url: String?
    let title: String?
    let description: String?
    let icon: String?
    let tags: [TagInfo]?
    let footerSection: FooterSection?
    // 添加与CodingKeys匹配的属性,类型根据实际返回值调整
    let ctaInfo: String?

    enum CodingKeys: String, CodingKey {
        case mediaReferenceID = "media_reference_id"
        case url, title, description, icon
        case ctaInfo = "cta_info"
        case footerSection = "footer_section"
    }
}
  • 方案二:如果不需要解析cta_info字段,直接删除CodingKeys中多余的ctaInfo条目即可:
struct AllImage: Codable {
    let mediaReferenceID: String?
    let url: String?
    let title: String?
    let description: String?
    let icon: String?
    let tags: [TagInfo]?
    let footerSection: FooterSection?

    enum CodingKeys: String, CodingKey {
        case mediaReferenceID = "media_reference_id"
        case url, title, description, icon
        case footerSection = "footer_section"
    }
}

内容的提问来源于stack exchange,提问作者Arnab Datta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 11:35:00