数组中的SwiftyJson数组

时间:2018-05-15 13:48:06

标签: ios json swift alamofire

我使用Alamofire和SwiftyJson从服务器解析JSON。我在tableView中显示它然后当我点击一行时,我在网络上打开一个链接。

但是我在解析数组时遇到了麻烦。

array`[
    {
        "title": " ",
        "likes": 0,
        "post_id": 60050,
        "image": "",
        "image1": "",
        "image2": "",
        "data": "",
        "arguments": [
            "link",
            "url"
        ],
        "provider": "custom",
        "price": " usd",
        "desc": "",
        "shop": ""
    },`

我的要求:

Alamofire.request("").responseJSON(completionHandler: { response in
    if ((response.result.value) != nil) {
        let swifts = JSON(response.result.value!)

        if let resData = swifts.arrayObject{
        }
        self.dataTable = resData as! [[String:AnyObject]]
    }

这显示文字:

cell.titleLabel.text = indexData["arguments "] as? String

但加载后,我有错误:

Swift._SwiftDeferredNSArray 0x600000228cc0>( url

2 个答案:

答案 0 :(得分:0)

尝试像那样解析它

let array = swifts["arguments"].arrayValue 

for item in array 
{
    print(item)

}

答案 1 :(得分:0)

在这里,我假设你完全得到API的回应。现在解析这样的数据。

  1. 创建全局变量var arrData : [Any] = []

  2. 现在打电话给api&得到这样的数据。

    if ((response.result.value) != nil) {
        self.arrData = (response.result.value) // here your all response in arrData. 
        self.tblView.reloadData() // reload tableview
    }
    else{
        // you didn't get the data
    }        
    
  3. 现在在TableView DataSource

    • numberOfRowsInSection

      func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
         return arrData.count 
      }
      
    • cellForRow

      func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
          let cell = tableView.dequeueReusableCell(withIdentifier: "your_cell_id") as! YourCell
      
          let aDictValue = arrData[indexPath.row] as? [String : Any]
      
          cell.labelTitle.text = aDictValue["title"] as! String
          cell.labelProvider.text = aDictValue["provider"] as! String
      
          // set your data like this.
      
          return cell
      }
      
  4. 如果还有任何问题,那么你可以问。