我正在为iPhone开发一个应用程序。我已成功将数据输入应用程序。我遇到的问题是,JSON中的某些数据结构与其他数据结构略有不同,因此它不会进入或不允许我的数据显示。到目前为止我的代码是:
已更新
导致问题的JSON结构
categories: [
{
name: "Here and now"
}
],
视图控制器中的Swift代码
guard let dic2 = post["categories"] as? [[String: Any]] else {
return
}
for category in dic2 {
guard let content = category["name"] as? String else {
return
}
}
然后以下代码将附加后期输入
postsinput.append(postinput.init(mainImage: mainImage, name: title, author: author, summary: summary, content: content, categories: content))
然后以下是将输出放到标签
let catLabel = cell?.viewWithTag(4) as! UILabel
catLabel.text = (postsinput[indexPath.row].categories).replacingOccurrences(of: "<[^>]+>", with: "", options: .regularExpression, range: nil)
所以这毕竟不起作用,viewcontroller中的输出是空的,我确信这是我的代码没有正确地从JSON读取数据结构。
有什么想法吗?
答案 0 :(得分:0)
Categories是一个字典数组,因此您应该在该结构中对其进行解析。
var categories = [String]()
guard let dic2 = post["categories"] as? [[String: Any]] else {
return
}
for category in dic2 {
guard let content = category["name"] as? String else {
return
}
categories.append(content)
}
答案 1 :(得分:0)
假设你的JSON就像
一样{
"categories": [{
"name": "Here and now"
}]
}
categories
不是字典,它实际上是一个字典对象数组。所以这一行会失败:
guard let dic2 = post["categories"] as? [String: Any]
应该是
guard let dic2 = post["categories"] as? [[String: Any]]