簡體   English   中英

如何將JSON解析為Swift中的tableView?

[英]How to parse JSON to the tableView in Swift?

請給我建議,我無法弄清楚如何正確解析表格視圖中的數據。

在此處輸入圖像描述

這是我的 model:

struct ContinentRoot: Codable {
let links: ContinentMiddle 
}

struct ContinentMiddle: Codable {
let continentItems: [ContinentsResponse]
}

struct ContinentsResponse: Codable {
let name: String
let href: String
}

在 ViewController 中,我添加了 tableView、continentsArray ([ContinentRoot]) 並為網絡做一些常規的事情。 我想問題可能出在這里,因為在網絡方法中一切似乎都很正常:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return continentsArray.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "ContinentsTableViewController", for: indexPath)
    let model = continentsArray[indexPath.row].links.continentItems[indexPath.row].name
    cell.textLabel?.text = model
    return cell
}

非常感謝您的關注!

根據您的附件設計:

如果continentsArray"ContinentRoot"的數組。 並且您想在所選 ContinentRoot 中顯示鏈接,您必須首先 select 它,然后像下面這樣使用它:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return selectedContinent.links.continentItems.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "ContinentsTableViewController", for: indexPath)
    let model = selectedContinent.links.continentItems[indexPath.row].name
    cell.textLabel?.text = model
    return cell
}  

如果不是,您必須使用您的代碼並更改此行:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "ContinentsTableViewController", for: indexPath)
    
let selectedIndex = .zero // or every index you want
    let model = continentsArray[indexPath.row].links.continentItems[selectedIndex].name
    cell.textLabel?.text = model
    return cell
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM