SwiftyJson 数组中的数组

Posted

技术标签:

【中文标题】SwiftyJson 数组中的数组【英文标题】:SwiftyJson array in array 【发布时间】:2018-05-15 13:48:06 【问题描述】:

我使用 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

【问题讨论】:

数组中的dict。 我需要做什么? 我没有完全清楚你到底想做什么。如果你重写你的 json 和一些你想显示的代码,那就更好了。它有助于我理解。 我尝试解析“参数” - 到 tableView 并显示它并在视图之间移动 你能告诉我你的 Json 的正确结构,以便我可以帮助你。 【参考方案1】:

在这里,我假设您完美地从 API 获得响应。现在像这样解析数据。

    创建一个全局变量var arrData : [Any] = []

    现在像这样调用 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
            
    

    现在在 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
    
    

如果还有问题可以问。

【讨论】:

【参考方案2】:

尝试像那样解析它

let array = swifts["arguments"].arrayValue 

for item in array 

    print(item)


【讨论】:

以上是关于SwiftyJson 数组中的数组的主要内容,如果未能解决你的问题,请参考以下文章

将 SwiftyJSON 中的元素添加到 Swift 中的 URL 数组

SwiftyJson 从字典中的数组中获取值

SwiftyJSON 打印字典数组中的所有值

在 SwiftyJson 中的方括号之前解析没有键的数组?

Swift - 使用 swiftyJSON 根据字典中的值查找字典数组的索引

如何访问第一组数组? SwiftyJSON