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

