SwiftUI 嵌套数组结构并显示在列表中

SwiftUI Nested Array Struct and displaying in List

我正在尝试显示嵌套数组/结构中的值。这是我的结构定义:

import Foundation

// MARK: - Station
struct Station:Codable, Identifiable  {
    let id, latitude, longitude, cp: String
    let pop, adresse, ville: String
    let prix: [Prix]
    
    // MARK: - Prix
    struct Prix: Codable, Identifiable{
        let nom, id, maj, valeur: String
        
    }
}

这是我的代码,只是为了证明数据在那里并且可以正常工作。

List {
                    
                    VStack(alignment: .leading) {
                        
                            ForEach (data) { item in
                            Text("id: \(item.id)")
                            Text("lon: \(item.longitude)")
                            Text("lat: \(item.latitude)")
                            
                            Text("\(item.prix[0].nom): \(item.prix[0].valeur)")
                            Text("\(item.prix[1].nom): \(item.prix[1].valeur)")
                            Text("\(item.prix[2].nom): \(item.prix[2].valeur)")
                            Text("\(item.prix[3].nom): \(item.prix[3].valeur)")
                        }
                    }
                }
 

我想用 ForEach 来显示 [Prix] 数组中的数据,因为项目的数量是可变的。

我已经尝试了很多 ForEach 与 Id 的组合,但没有但无法让它工作。

谢谢

尝试使用嵌套 ForEach

对于data中的每个Station,都有一个Prix的数组。您应该使用 ForEach 遍历 item.prix,这样您就不会出现索引超出范围的异常(它将为 item.prix 中的每个 Prix 创建视图)

List {
                    
//VStack(alignment: .leading) {                    
    ForEach (data) { item in
             Text("id: \(item.id)")
             Text("lon: \(item.longitude)")
             Text("lat: \(item.latitude)")
             ForEach (item.prix) { prix in 
                 Text("\(prix.nom): \(prix.valeur)")
             }
    }
//}
}