ios - JSON访问数组内的多个实例

标签 ios arrays json swift

我正在使用 JSONDecoder 通过 API 访问 JSON 数据。在这个 JSON 数据中有几个 [arrays]。我遇到了访问出现 key 的每个实例的问题。

代码如下:

var details = [Details]()
var production = [Production]()

struct Details: Codable {
    let title: String
    let poster_path: String?
    let id: Int?
    let production_companies: [Production]
}

struct Production: Codable {
    let name: String
}


let task = session.dataTask(with: request, completionHandler: { (dataOrNil, response, error) in
        if let data = dataOrNil {
            do { let details = try! JSONDecoder().decode(Details.self, from: data)

let production = details.production_companies
print(production)

 }
        }

    })

这是 print(production) 打印到控制台的内容:

[Film_Bee.DetailsView.Production(name: "Columbia Pictures"), Film_Bee.DetailsView.Production(name: "Marvel Entertainment"), Film_Bee.DetailsView.Production(name: "Sony Pictures")]

我想做的是访问数组中的每个 name。我知道要访问第一个我可以使用 production.first?.name 但如果我不确定如何访问每个标签以放入单个标签。

最佳答案

Prashant 点了。我只是额外添加了一点可能对您有所帮助。

我相信你知道像 for 或 forEach 这样的快速循环来查看你的字符串列表

production.forEach { model in
    print(model.name)
}

对于你的问题,你需要加入你的字符串列表。当您需要更新 UI 时,请使用 DispatchQueue。

let productionList = production.map{$0.name}
let strings = productionList.joined(separator: " ") //use "\n" if you wish new line
print("stringList: \(strings)")
DispatchQueue.main.async() {  
 yourLabel.text = strings
}

关于ios - JSON访问数组内的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52789479/

相关文章:

javascript - 将字符串 reshape 并重新排列为特定形状

java - 如何在下一个 Activity 中显示响应

python - 我将如何在 Dask 中进行 Spark 爆炸?

ios - Core-Plot 多个 y 轴对齐问题 - 可能与缩放有关

c - 如何从数组中单独获取索引

ios - 当应用程序在 App Store 上时,NSDates 的存储方式不同,但在 Xcode 中调试时可以完美运行

python - 这个数组赋值是怎么回事?

java - 将字符串 x = "[]"映射到 JsonNode 会导致额外的引号(Spring Boot)

ios - 隐藏 View 时如何使用自动布局移动其他 View ?

ios - 几分钟后在后台套接字上监听SIGSTOP