在TableView上调用具有双括号的JSON数据

时间:2018-03-23 18:19:21

标签: ios swift

我在json中有以下数据:

[
{
id: 10033,
title: {
rendered: "My title"
},
content: {
rendered: "Sample text html",
}
}

我的数据结构如下:

// Create structer of Post
struct JsonSosTalleres : Codable {
    let id : Int?
    let title : Title?
    let content : Content?

    enum CodingKeys: String, CodingKey {
        case id = "id"
        case title = "title"
        case content = "content"
    }

}


struct Title : Codable {
    let rendered : String?
    enum CodingKeys: String, CodingKey {
        case rendered = "rendered"
    }
}

struct Content : Codable {
    let rendered : String?
    enum CodingKeys: String, CodingKey {
        case rendered = "rendered"
    }
}

我需要在表格中显示这些数据,我有两个出口:titlePost(标签)y contentPost

好吧,但我的问题是在调用单元格中的数据时,我无法调用JSON数据,因为它有双括号。

private var getData = [DownloadJson]()
    override func viewDidLoad() {
        super.viewDidLoad()

        DownloadJson()

    }

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tablaView.dequeueReusableCell(withIdentifier: "ofertcell") as? OfertasTableViewCell else { return UITableViewCell() }

       // How do I define my code here to call the title?
        cell.titlePost.text = getData[indexPath.row].title

        return cell

    }

    // funtion get json ()

     func DownloadJson()  {
     .....
     }

如何在此处定义代码以调用标题?

以下我收到错误"无法指定类型'标题的值?'键入' String?' " cell.titlePost.text = getData[indexPath.row].title 还尝试了以下内容:cell.titlePost.text = getData.Title[indexPath.row].rendered但我没有成功,如果你能指导我,我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

更改

cell.titlePost.text = getData[indexPath.row].title

cell.titlePost.text = getData[indexPath.row]?.title?.rendered