[英]SwiftUI: Parse JSON and create dynamic list
我想解析/解碼一個 JSON字符串,然后創建一個動態列表。
JSON 示例: [{"course":"course1","teacher":"teacherName1"},{"course":"course1","teacher":"teacherName2"}]
我的希望:
List {
HStack {
Text("course1")
Spacer()
Text("teacherName1")
}
HStack {
Text("course2")
Spacer()
Text("teacherName2")
}
}
我已經用 JSONDecoder() 和數組嘗試過它,但 Xcode 一遍又一遍地用這條消息標記我的 TabView: Cannot convert value of type 'Binding<Int>' to expected argument type 'Binding<_>?'
我是 swift 的新手,抱歉;)
我做了一個例子,你可以遵循:
import SwiftUI
let jsonString = """
[{"course":"course1","teacher":"teacherName1"},{"course":"course1","teacher":"teacherName2"}]
"""
let data = jsonString.data(using: .utf8) ?? Data()
struct Course: Codable, Identifiable {
let id = UUID()
let course: String
let teacher: String
}
struct ContentView: View {
let courses: [Course] = (try? JSONDecoder().decode([Course].self, from: data)) ?? []
var body: some View {
List(courses) { course in
HStack {
Text(course.course)
Spacer()
Text(course.teacher)
}
}
}
}
我將Course
結構確認為Identifiable
和Codable
以便List
可以迭代課程數組。 此外,我默認為空Data
和空課程數組,以防解碼失敗。 您可以根據需要在此處編寫更好的錯誤處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.