【问题标题】:How can I read JSON from URL, output FLOAT to app screen? SwiftUI如何从 URL 读取 JSON,将 FLOAT 输出到应用程序屏幕? SwiftUI
【发布时间】:2020-08-19 08:58:01
【问题描述】:

我是 swift 新手,需要从 url 读取 json 文件。我设法获取数据并将其输出到应用程序屏幕(当它是字符串时),但是如何正确地将其从浮点数转换并输出到应用程序屏幕?

import SwiftUI

struct DATA: Codable {
    let ONE_R: Float
    let TWO_R: Float
}

struct AllTEC: View {
    @State var user: DATA?
    var body: some View {
        Text("ONE: \(user?.ONE_R ?? "")")  \\correct for string incorrect for float
            .onAppear(perform: loadD)
    }
}

extension AllTEC
{
    func loadD() {

    let url = URL(string: "https://symbiosys-a415a.firebaseio.com/DATA.json")!

    let task = URLSession.shared.dataTask(with: url) { data, response, error in
        guard error == nil else {
              print("error: \(error!)")
              return
        }
        guard let data = data else{
              print("no data")
              return
        }
        guard let user = try? JSONDecoder().decode(DATA.self, from: data) else {
        print("Error: Couldn't decode data ito user")
        return
        }
        print("gotten user is \(user.ONE_R)")
        DispatchQueue.main.async {
        self.user = user
    }
    task.resume()
   }
}

struct AllTEC_Previews: PreviewProvider {
    static var previews: some View {
          AllTEC()
    }
}

JSON

{
"ONE_R":98.4,
"TWO_R":27.7
}

【问题讨论】:

    标签: json swift swiftui


    【解决方案1】:

    编辑:只需使用浮点值进行零合并

    替换:

    Text("ONE: \(user?.ONE_R ?? "")")
    

    与:

    Text("ONE: \(user?.ONE_R ?? 0)")
    

    上一篇:更新模型以接受Float作为参数。

    struct DATA: Codable {
        let ONE_R: Float
        let TWO_R: Float
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 2015-07-19
    • 1970-01-01
    • 2012-12-21
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多