【问题标题】:How to convert filtered data into array format in swift3?如何在swift3中将过滤后的数据转换为数组格式?
【发布时间】:2017-08-30 14:49:47
【问题描述】:

我尝试将过滤后的数据转换为数组格式,它在 swift3 中显示一行的数组。检查我下面的代码。

func serviceTest(){
let stringurl = "http://beta.json-generator.com/api/json/get/4JjQJ50O7"
        let url = URL(string: stringurl)!
        URLSession.shared.dataTask(with: url, completionHandler: {(data,response, error) in
            guard data != nil else { return }
            do{
                var filterData:[String:Any] = [:]
                var clusterData:[[String:Any]] = [[:]]

                let json:[[String:Any]] = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [[String : Any]]
                clusterData =  json
                var keyValue = ""
                for cluster in clusterData
                {
                    keyValue = cluster["Tag"] as! String
                    self.arr.append(keyValue)
                    var myArr = cluster["Feature"] as? AnyObject
                    var myA = [Any]()
                    myA = [myArr!]
                    var strArr = ""
                    for var i in 0...(myArr?.count)!-1 {
                        let m = myArr?[i] as AnyObject
                        let n = m["Name"] as AnyObject
                        let o = m["Tags"] as AnyObject
                        var oS = String(describing: o)
                        let nS = String(describing: n)
                        strArr = (nS as! String)+","+strArr
                        self.subArr = [strArr]
                    }
                    print("\(keyValue):\(self.subArr)")
                     print("---------------------")
                    self.sArr.append(self.subArr)
                }
                print("*********************************")
                print("\(self.sArr)")
                print("*********************************")
                print("tcount:\(self.sArr.count)")
                print(self.arr)
                print("count:",self.arr.count)
                DispatchQueue.main.async {
                self.tableView.reloadData()
                }
            }catch {
            }
        }).resume()
}

需要的输出:

Hybrid:["Moto",Lenovo","Infocus"]
---------------------
FingerPrint:["Kult","Redmi","Lenovo"]
---------------------
Security:["Nokia","Microsoft","Moto"]
---------------------
Cloud:["Microsoft","Samsung"]
---------------------
Analytics:["Lenovo"]
---------------------

我的输出:

Hybrid:["Moto,Lenovo,Infocus,"]
---------------------
FingerPrint:["Kult,Redmi,Lenovo,"]
---------------------
Security:["Nokia,Microsoft,Moto,"]
---------------------
Cloud:["Microsoft,Samsung,"]
---------------------
Analytics:["Lenovo,"]
---------------------

【问题讨论】:

标签: json swift3


【解决方案1】:

@Dávid Pásztor 已经给出了答案。

但我在代码中试过了:

var strArr = ""
for var i in 0...(myArr?.count)!-1 {
    let m = myArr?[i] as AnyObject
    let n = m["Name"] as AnyObject
    let o = m["Tags"] as AnyObject
    var oS = String(describing: o)
    let nS = String(describing: n)
    strArr = strArr != "" ? (nS as! String)+","+strArr : (nS as! String)
}
self.subArr = strArr.components(separatedBy: ",")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多