gpt4 book ai didi

arrays - 在 SwiftUI 中显示嵌套数组中的项目

转载 作者:行者123 更新时间:2023-12-04 08:29:26 25 4
gpt4 key购买 nike

我正在尝试解码 Yelp 的 JSON。在该文件中有一个嵌套的 categories 数组。有些企业有 1 个,其他企业可能有 3 个。

举个例子

{
"businesses": [
{
"id": "4jW-ZDeCPIl9aXvTWcATlA",
"alias": "the-delaney-hotel-orlando",
"name": "The Delaney Hotel",
"image_url": "https://s3-media2.fl.yelpcdn.com/bphoto/fikUF4yC5J63f3EOCZ8uOw/o.jpg",
"is_closed": false,
"url": "https://www.yelp.com/biz/the-delaney-hotel-orlando?adjust_creative=s-hyKAjsx6P4UW-uqMn7aQ&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=s-hyKAjsx6P4UW-uqMn7aQ",
"review_count": 13,
"categories": [
{
"alias": "hotels",
"title": "Hotels"
},
{
"alias": "venues",
"title": "Venues & Event Spaces"
}
],
"rating": 5.0,
...etc
}

]

我的数据模型是这样设置的

struct BusinessesResponse: Codable {
enum CodingKeys: String, CodingKey {
case restaurants = "businesses"
}

let restaurants: [RestaurantResponse]
}

struct RestaurantResponse: Codable, Identifiable, Equatable {
let id: String
var name: String
var image_url: String
var is_closed: Bool
var review_count: Int
var rating: Double
var distance: Double
var price: String?
var display_phone: String?
var categories: [HotelCategory]
var coordinates: HotelCoordinates
var location: HotelLocation
var transactions: [String]
}

struct HotelCategory: Hashable, Codable {
var title: String
}

struct HotelCoordinates: Hashable, Codable {
var latitude: Double
var longitude: Double
}

struct HotelLocation: Hashable, Codable {
var address1: String
var city: String
var state: String
var zip_code: String
}

我能够显示 categories 数组中第一对以外的所有内容。我的猜测是我需要设置一个 ForEach 语句来显示该数组中的所有可用信息,但我不确定如何正确设置它。

这是我目前的缩写形式

var category: [HotelCategory]


var body: some View {
HStack {
Text("\(category[0].title)")
}
}

显然,这只会返回嵌套数组的第一个子元素。我将如何动态地解释具有多个子项然后显示它们的嵌套数组?

最佳答案

您可以这样使用 ForEach:

ForEach(category, id: \.self) { category in
HStack {
Text("\(category.title)")
}
}

注意:如果您不确定类别是否唯一,最好使 HotelCategory 符合 Identifiable 并使用 id:\.id.


我还建议遵循约定并使用 复数 名称命名数组,即:

var categories: [HotelCategory] // instead of `category`

关于arrays - 在 SwiftUI 中显示嵌套数组中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65100145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com