Arrays 获取Swift中已解析JSON数据的索引

Arrays 获取Swift中已解析JSON数据的索引,arrays,json,swift,swiftui,Arrays,Json,Swift,Swiftui,下面是我的数据结构。我试图创建一个循环来检查员工是否可以执行某项服务,但我无法使employee.services正常工作。JSON数据被加载到EmployeesData中。我想我需要从EmployeesData获取索引,但我似乎无法使用ForEach ForEach(EmployeesData){ employee in //This does not work if(employee.services[0] == "service") } struct Emp

下面是我的数据结构。我试图创建一个循环来检查员工是否可以执行某项服务,但我无法使employee.services正常工作。JSON数据被加载到EmployeesData中。我想我需要从EmployeesData获取索引,但我似乎无法使用ForEach

ForEach(EmployeesData){ employee in
  //This does not work
  if(employee.services[0] == "service")
}


struct Employees: Codable, Identifiable{
  var id: UUID
  var firstname: String
  var lastname: String
  var services: [String]
  var workingStatus: String
}

//Store employee data in EmployeesData
let EmployeesData: [Employees] = load("Employees.json")

private func load<T: Decodable>(_ filename: String) -> T {
let data: Data

guard let file = Bundle.main.url(forResource: filename, withExtension: nil)
    else {
        fatalError("Couldn't find \(filename) in main bundle.")
}

do {
    data = try Data(contentsOf: file)
} catch {
    fatalError("Couldn't load \(filename) from main bundle:\n\(error)")
}

do {
    let decoder = JSONDecoder()
    return try decoder.decode(T.self, from: data)
} catch {
    fatalError("Couldn't parse \(filename) as \(T.self):\n\(error)")
}
}
ForEach(EmployeesData){employee in
//这行不通
if(员工服务[0]=“服务”)
}
结构员工:可编码、可识别{
变量id:UUID
var firstname:String
var lastname:String
var服务:[字符串]
变量工作状态:字符串
}
//在EmployeesData中存储员工数据
让EmployeesData:[Employees]=load(“Employees.json”)
私有函数加载(u文件名:字符串)->T{
让数据:数据
guard let file=Bundle.main.url(forResource:filename,扩展名:nil)
否则{
fatalError(“在主捆绑包中找不到\(文件名)。”
}
做{
数据=尝试数据(contentsOf:file)
}抓住{
fatalError(“无法从主捆绑包加载\(文件名):\n\(错误)”)
}
做{
let decoder=JSONDecoder()
返回try decoder.decode(T.self,from:data)
}抓住{
fatalError(“无法将\(文件名)解析为\(t.self):\n\(错误)”)
}
}
if let index = employee.services.firstIndex(where: {$0 == "service"})