我想通过url传入的json在tableviewcontroller中显示数据
时间: 2023-06-19 11:09:12 浏览: 61
首先,你需要在TableView Controller中创建一个数组来存储JSON数据。然后,在viewDidLoad方法中,你需要解析JSON数据并将其添加到数组中。解析JSON数据通常使用JSONSerialization类完成。以下是一个示例代码:
```swift
import UIKit
class TableViewController: UITableViewController {
var dataArray = [DataModel]()
override func viewDidLoad() {
super.viewDidLoad()
if let url = URL(string: "https://yourapi.com/data.json") {
URLSession.shared.dataTask(with: url) { data, response, error in
if let data = data {
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
if let jsonArray = json as? [[String: Any]] {
for jsonObject in jsonArray {
let dataModel = DataModel(json: jsonObject)
self.dataArray.append(dataModel)
}
}
DispatchQueue.main.async {
self.tableView.reloadData()
}
} catch {
print(error.localizedDescription)
}
}
}.resume()
}
}
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataArray.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
let data = dataArray[indexPath.row]
cell.textLabel?.text = data.title
return cell
}
}
```
在上面的代码中,我们首先创建了一个名为`DataModel`的模型类,该模型类根据JSON数据中的键初始化其属性。然后,在TableView Controller中,我们创建了一个名为`dataArray`的数组来存储所有的模型对象。在`viewDidLoad`方法中,我们使用`URLSession`下载了JSON数据,并将其解析为数组中的模型对象。最后,我们在`tableView(_:cellForRowAt:)`方法中使用模型数据来填充单元格。