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

Swift解码JSON时是否需为所有属性创建结构体?

Swift JSON解码:仅定义感兴趣的属性是否可行?

不需要创建包含所有JSON属性的结构体,只需要定义你关注的属性即可。Swift的Decodable协议默认会忽略JSON中那些没有对应结构体属性的键,不会因为缺少部分属性而解码失败。

比如你给出的JSON:

"teamRecord": {
    "wins": 15,
    "losses": 14,
    "draws": 3
}

完全可以使用仅包含wins的结构体来解码:

struct Team: Decodable {
    let wins: Int
}

解码过程会正常完成,只会提取wins的值,losses和draws会被自动忽略,不会引发错误。

只有当你需要处理JSON中键名和结构体属性名不匹配的情况时,才需要额外定义CodingKeys枚举来做映射,否则默认的解码逻辑就足够应对这种只提取部分属性的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:48:14