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

Swift如何通过struct解析含数字开头key的JSON并完成API调用

问题根因

你自定义了SATScores的CodingKeys映射规则,但仅声明了25th_percentile对应的属性映射,遗漏了同层级的midpoint属性的声明,导致Swift编译器无法自动完成Decodable协议的默认实现,因此抛出不遵循协议的报错。

另外你定义的SATSubjects和SATSubjects2结构完全一致,可以直接复用同一个结构体,无需重复定义冗余代码。

修复方案

只需要在CodingKeys中补全midpoint的声明即可,因为它的属性名和JSON返回的key完全一致,不需要额外做别名映射:

struct SATScores: Decodable {
    let midpoint: SATSubjects
    let the25th_percentile: SATSubjects

    enum CodingKeys: String, CodingKey {
        // 补全midpoint的声明
        case midpoint
        case the25th_percentile = "25th_percentile"
    }
}

修改后可以直接删除冗余的SATSubjects2结构体,所有逻辑即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:24:02