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

Swift中如何创建匹配指定JSON结构的Codable结构体

问题定位

你现有结构体的核心错误是friends字段的类型声明:你定义成了[String]字符串数组,但目标JSON里friends数组内存储的是结构化对象,不是字符串值,这是解析失败的根本原因。

可直接匹配JSON的结构体代码
struct Result: Codable {
    let data: [PeopleData]
}

struct PeopleData: Codable {
    let name: String
    let address: String
    let friends: [Friend]
}

struct Friend: Codable {
    let name: String
    let address: String
}
匹配规则说明
  • 根层的{}对象对应Result结构体,其下data字段为对象数组,对应[PeopleData]类型
  • PeopleData下的friends字段同样是对象数组,每个数组元素包含name、address两个字符串属性,因此对应新增的[Friend]类型
  • 所有结构体字段名和JSON的key完全一致,无需自定义CodingKeys,直接调用JSONDecoder即可完成解析。

注意:你贴出的JSON示例中,Andy对应的address属性值末尾缺少闭合双引号,属于JSON语法错误。如果是粘贴时的笔误不影响使用,如果是接口真实返回的格式问题,会直接导致解码失败,需要和接口提供方确认修正,你无权修改返回格式的话无法绕过这个语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 13:03:20