Я сделал пример, которому вы можете следовать:
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
и пустой массив курсов в случае неудачного декодирования. Вы можете написать лучшую обработку ошибок здесь в зависимости от ваших потребностей.