在Swift中的tableview行之间发出拆分JSON响应
目前我有以下JSON数组:在Swift中的tableview行之间发出拆分JSON响应,swift,uitableview,Swift,Uitableview,目前我有以下JSON数组: [ { "Time": "8:10 PM", "Person": "Jeff", "Place": "London" } ] 我会将时间、人员和位置值拆分到各个单元格中 目前我有以下几点: private func fetchJSON() { guard let url = URL(string: "\(URLValue)lookup.php"), let value = va
[
{
"Time": "8:10 PM",
"Person": "Jeff",
"Place": "London"
}
]
我会将时间、人员和位置值拆分到各个单元格中
目前我有以下几点:
private func fetchJSON() {
guard let url = URL(string: "\(URLValue)lookup.php"),
let value = value.addingPercentEncoding(withAllowedCharacters: .urlQueryValueAllowed)
else { return }
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = "value=\(value)".data(using: .utf8)
URLSession.shared.dataTask(with: request) { data, _, error in
guard let data = data else { return }
do {
self.structure = try JSONDecoder().decode([LookupStructure].self,from:data)
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
catch {
print(error)
}
}.resume()
}
LookupStructure如下所示:
struct LookupStructure: Decodable {
let Time: String
let Person: String
let Place: String
enum CodingKeys : String, CodingKey {
case Time, Person, Place
}
}
我在理解如何在每一行上显示JSON数据时遇到了困难,这意味着
时间在第0行,人员在第1行,地点在第2行
类似的操作应该可以:
class MyViewController: UIViewController, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return self.structure.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// assuming you set up your kCellIdentifier somewhere
let cell = tableView.dequeueReusableCell(withIdentifier: kCellIdentifier) ?? UITableViewCell()
let `struct` = self.structure[indexPath.section]
var textLabel: String? = nil
switch indexPath.row {
case 0:
textLabel = `struct`.Time
break
case 1:
textLabel = `struct`.Person
break
case 2:
textLabel = `struct`.Place
break
default:
fatalError("oopsies")
}
cell.textLabel?.text = textLabel
return cell
}
}
非常感谢您的帮助,如果我在每一行的JSON数据前面添加一些文本,是否有必要只将该文本加粗?比如:
textlab=“Person:\(struct.Person)”
当然可以,基本上可以这样做: