[英]How to load JSON data into cells using Alamofire/SwiftyJSON?
我有此JSON的鏈接,我需要用其中的數據填充單元格。 它基本上是一個問答數組。
我已經在互聯網上嘗試了幾種解決方案,但似乎都無法適應我的需求。
這是我收集的一些代碼,但我認為它不會很好地為我服務。
var preguntas = [String]()
func getPreguntas(url: String, parameters:[String:String]) {
Alamofire.request(url, method: .get, parameters: parameters).responseJSON { response in
if response.result.isSuccess {
print("Success!")
let preguntasJSON: JSON = JSON(response.result.description)
} else {
print("Error \(String(describing: response.result.error))")
}
self.tableView.reloadData()
}
}
func updatePreguntas(json: JSON) {
for (pregunta, respuesta) in json["faqs"] {
let preg = ("\(pregunta) \(respuesta)")
preguntas.append(preg)
}
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: FAQTableViewCell.reuseIdentifier, for: indexPath)
if let cell = cell as? FAQTableViewCell {
// TODO
cell.preguntaLabel.text = preguntas[indexPath.row]
// cell.respuestaLabel.text = respuestas[indexPath.row]
}
return cell
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return preguntas.count
}
我需要的是將preguntas
作為單元格的標題,並在擴展單元格時輕按下面顯示的respuestas
。 但是我已經涵蓋了擴展部分。 但是我無法從JSON中獲得這兩件事。
使用可Codable
var preguntas = [String]()
Alamofire.request(URL(string:"https://test-tokbox-assistcard.herokuapp.com/faqs")!, method: .get, parameters: [:], encoding: URLEncoding.default, headers: [:]).responseData { response in
if response.result.isSuccess {
guard let data = response.data else { return }
do {
let res = try JSONDecoder().decode(Empty.self, from: data)
print(res.faqs)
preguntas = res.fags.map { $0.pregunta }
}
catch {
print(error)
}
}
self.tableView.reloadData()
}
// MARK: - Empty
struct Empty: Codable {
let faqs: [FAQ]
}
// MARK: - FAQ
struct FAQ: Codable {
let pregunta, respuesta: String
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.