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

Swift中使用URLSession解析无键值对JSON数组的方法

纯字符串数组类型JSON的解析方法

你接口返回的JSON根节点本身就是字符串数组,不需要定义带name属性的结构体做映射,直接把解析目标类型设为字符串数组[String]就能拿到所有数据。

  • 用Swift 标准JSONDecoder解析时,直接将解码目标指定为[String].self即可,不需要自定义模型类型
  • 解码完成后遍历数组,就能逐个打印所有标题内容

代码示例:

// 此处data为接口返回的原始Data格式响应数据
do {
    // 直接解码为字符串数组
    let titleList = try JSONDecoder().decode([String].self, from: data)
    // 遍历打印每个名称
    titleList.forEach { title in
        print(title)
    }
} catch {
    print("解析出错:\(error.localizedDescription)")
}

如果你用的是更早的JSONSerialization方案,写法如下:

do {
    let titleList = try JSONSerialization.jsonObject(with: data) as? [String] ?? []
    titleList.forEach { print($0) }
} catch {
    print("解析出错:\(error.localizedDescription)")
}

补充说明:你之前定义的AllNames结构体,只适配{"name": "具体名称"}这种键值对对象结构的JSON,和当前根节点为数组的结构不匹配,所以无法正常解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:30:59