SwiftUI 如何从响应 JSON API 中分离单个数据

Posted

技术标签:

【中文标题】SwiftUI 如何从响应 JSON API 中分离单个数据【英文标题】:SwiftUI how to separate individual data from a response JSON API 【发布时间】:2021-08-07 07:55:43 【问题描述】:

这是我当前的代码,现在我只能打印从我的 API 返回的响应,我想知道如何从响应中打印出单个数据?假设我只想打印电压。

Image of current response

import Foundation

struct datamainjsonlatest: Codable, Identifiable 
    var id: String
    var times: String
    var Voltage: String
    var Current: String
    var Temperature: String



class Api : ObservableObject
    @Published var datamainjsonlatests = [datamainjsonlatest]()
    
    func loadData(completion:@escaping ([datamainjsonlatest]) -> ()) 
        guard let url = URL(string: "https://dcmicrogridiep.000webhostapp.com/datamainlatestjson.php") else 
            print("Invalid url...")
            return
        

        URLSession.shared.dataTask(with: url)  data, response, error in
            let datamainjsonlatests = try! JSONDecoder().decode([datamainjsonlatest].self, from: data!)
            print(datamainjsonlatests)
            DispatchQueue.main.async 
                completion(datamainjsonlatests)
            
        .resume()
        
    

【问题讨论】:

【参考方案1】:

现在您收到一个对象数组。要访问单个对象,请发送for in loop

for object in datamainjsonlatests 
print(object.Voltage)

【讨论】:

以上是关于SwiftUI 如何从响应 JSON API 中分离单个数据的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 从回调中分配一个值,显示在视图中

如何在 SwiftUI 中访问 json 响应?

从 api SwiftUI 解码 JSON 文件

从公共 API 获取 JSON 以在 SwiftUI 的列表视图中呈现

如何在 SwiftUI 中显示来自 API 的 JSON 数据?

Laravel Dingo Api - 如何从 API 控制器返回 JSON 格式的错误响应?