【问题标题】:List from nested JSON response来自嵌套 JSON 响应的列表
【发布时间】:2020-09-07 19:53:33
【问题描述】:

我仍在学习 swift,但我一直坚持从嵌套的 json 响应创建列表。并且不知道如何实现这一点。

基本上我有包含类别数组的 json,每个类别都有升降机数组。我想要实现的是为每个类别创建电梯列表。

使用此代码在列表视图中的特定类别下获得升降机没有问题:

List(data.jsonData.categories[categoryId].lifts) { lift in

但不知道如何获取列表中所有类别的所有电梯。我想在 List 上方创建 ForEach 并将索引传递给 [categoryID] 但我收到一个错误,即 ForEach 无法在 View 中使用。

这是我的 JSON 结构:

// MARK: - Lifts API List
struct liftsAPIList: Codable {
  let categories: [Category]
}

// MARK: - Category
struct Category: Codable, Identifiable {
  let id: Int
  let data: [CategoryLangauge]
  let lifts: [Lift]

  enum CodingKeys: String, CodingKey {
    case id = "ID"
    case data, lifts
  }
}

// MARK: - CategoryLangauge
struct CategoryLangauge: Codable {
  let en, fr: [LangaugeCategory]
}

// MARK: - LangaugeCategory
struct LangaugeCategory: Codable {
  let title: String
}

// MARK: - Lift
struct Lift: Codable, Identifiable {
  let id: Int
  let data: [LiftLanguage]

  enum CodingKeys: String, CodingKey {
    case id = "ID"
    case data
  }
}

// MARK: - LiftLanguage
struct LiftLanguage: Codable {
  let en, fr: [LangaugeLift]
}

// MARK: - LangaugeLift
struct LangaugeLift: Codable {
  let code, info, photoId, title: String
}

更新:

我已经弄清楚了列表中嵌套的 forEach。不明白为什么在 List 里面我可以使用 ForEach 但在外面我不能

【问题讨论】:

    标签: ios swift listview swift5 xcode11


    【解决方案1】:
    List {
                    ForEach(self.data.jsonData.categories) { category in
    
                        Text(category.data[0].en[0].title)
    
                        ForEach(category.lifts) { lift in
    
                            Text(lift.data[0].en[0].code)
                        }
                    }
    
                }
    

    【讨论】:

      猜你喜欢
      • 2020-05-21
      • 2021-05-31
      • 2020-02-14
      • 2016-09-03
      • 2017-07-03
      • 2018-10-30
      • 2015-08-26
      • 2017-07-30
      • 1970-01-01
      相关资源
      最近更新 更多