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
相关产品推荐
相关产品推荐

