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

Swift中如何从[String:Array]数组及指定JSON结构获取值

问题2:从location数组中提取name字段

从你打印的结果[[id:1,name:sam]]能看出来,location是一个元素为字典的数组([[String: Any]]类型)。要拿到name的值,只需要先取出数组里的第一个字典元素,再通过"name"键取值就行,用可选链可以简化代码:

// 基于你已有的代码扩展
if let location = data["location"] as? [[String: Any]],
   // 取出数组第一个元素,再提取name并转成String类型
   let name = location.first?["name"] as? String {
    print(name) // 输出 "sam"
}

解释下这段代码:

  1. location.first?:因为数组可能为空,用可选链避免崩溃,如果数组有元素就取第一个,否则返回nil
  2. ["name"] as? String:把字典里的name值转成String类型,确保类型安全

如果数组里可能有多个location元素,你可以遍历数组拿到所有的name:

if let locationArray = data["location"] as? [[String: Any]] {
    let names = locationArray.compactMap { $0["name"] as? String }
    print(names) // 输出 ["sam"],如果有多个元素会返回所有name的数组
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:57:53