JSON 显示到 tableview

Posted

技术标签:

【中文标题】JSON 显示到 tableview【英文标题】:JSON displayed to tableview 【发布时间】:2016-11-27 18:54:03 【问题描述】:

我想第一次使用 AlamofireObjectMapper 来快速解析一个 json 响应。 我是这样映射的:

class ModelCurrency:  Mappable 

 var success   : Bool?
    var terms     : String?
    var privacy   : String?
    var timestamp : CGFloat?
    var source    : String?
    var quotes    : [Quotes]?

    init() 

    required init?(map: Map) 

    

    func mapping(map: Map) 

         success<-map["success"]
         terms<-map["terms"]
         privacy<-map["privacy"]
         timestamp<-map["timestamp"]
         source<-map["source"]
         quotes<-map["quotes"]

        print("It json\(terms)")
    


class Quotes : Mappable 

    var name : String?
    var val : CGFloat?

    required init?(map: Map) 

    

    func mapping(map: Map) 
        name<-map["name"]
        val<-map["val"]
    

和我的控制器

 var arrayTable = [String]()

   override func viewDidLoad() 
        super.viewDidLoad()

        tableView.delegate = self
        tableView.dataSource = self

        super.viewDidLoad()
        let URL = "http://www.apilayer.net/api/live?access_key=ad847a0a855c0647590df2b818923025"

        Alamofire.request(URL).responseObject  (response: DataResponse<ModelCurrency>) in

            let currency = response.result.value!;

            for quotes in currency.quotes! 


                self.arrayTable.append(quotes.name!)

            
        

    


   override func numberOfSections(in tableView: UITableView) -> Int 

        return  5

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 

        return arrayTable.count   


    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: indexPath) as UITableViewCell


        cell.textLabel?.text = self.arrayTable[indexPath.row]


        return cell
        

我希望在 tableview 中显示数组引号。怎么做 ?

【问题讨论】:

【参考方案1】:

我认为你更新数据源arrayTable后需要reload表视图:

...
for quotes in currency.quotes! 
  self.arrayTable.append(quotes.name!)

self.tableView.reloadData()
...

此外,您无需拨打两次super.viewDidLoad()

【讨论】:

以上是关于JSON 显示到 tableview的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Json 数据显示到 Django 模板?

如何将 JSON 中的数据显示到 html 表中

如何使用材料角度将嵌套的json数组显示到html表中

如何从 NSDictionary 将 json 显示到 uitextview

如何将 json 文件数据显示到 UICollectionView

如何返回并显示保存到数据库laravel的json数据