You need to enable JavaScript to run this app. SwiftUI 如何从API返回的JSON响应中提取Voltage等单独字段值
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI 如何从API返回的JSON响应中提取Voltage等单独字段值

实现方案

你解码后得到的datamainjsonlatests是你定义的datamainjsonlatest结构体的数组,每个数组元素都自带你声明的所有属性,直接用点语法即可读取单个字段的值。

打印所有返回数据的Voltage字段

在你现有的print(datamainjsonlatests)代码后添加以下遍历逻辑:

for dataItem in datamainjsonlatests {
    print("Voltage值:\(dataItem.Voltage)")
}

仅打印第一条返回数据的Voltage字段

如果接口仅返回单条最新数据,直接取数组首元素即可,建议增加判空逻辑避免数组为空时崩溃:

if let latestItem = datamainjsonlatests.first {
    print("最新Voltage值:\(latestItem.Voltage)")
}

附加优化建议

你当前使用的try!属于强制解包,当接口返回结构异常、解码失败时会直接导致程序崩溃,建议替换为do-catch错误处理逻辑:

URLSession.shared.dataTask(with: url) { data, response, error in
    // 先判断data是否存在,避免强制解包崩溃
    guard let data = data else {
        print("无返回数据:\(error?.localizedDescription ?? "未知错误")")
        return
    }
    do {
        let datamainjsonlatests = try JSONDecoder().decode([datamainjsonlatest].self, from: data)
        // 打印完整响应
        print(datamainjsonlatests)
        // 打印Voltage的逻辑放在这里
        for dataItem in datamainjsonlatests {
            print("Voltage值:\(dataItem.Voltage)")
        }
        DispatchQueue.main.async {
            completion(datamainjsonlatests)
        }
    } catch {
        print("数据解码失败:\(error)")
    }
}.resume()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 02:54:03