【问题标题】:How to store data in array from web api如何从Web api将数据存储在数组中
【发布时间】:2020-03-14 16:37:24
【问题描述】:

我正在使用 Xcode 11.3.1、Swift 5 并尝试通过 web api 在表格视图中显示数据。因此,在获取数据后,我想将“名称”数据存储在 countryList 中。 countryList 是一个数组。

URLSession.shared.dataTask(with: url!) { (data, response, error) in

        do
        {if error == nil{

            let parsedData = try JSONSerialization.jsonObject(with: data!) as? NSDictionary
            let tableData = parsedData?["data"] as! NSArray

            self.countryList = [tableData.value(forKey: "name") as? String]
            print("DEVELOPER: \(self.countryList)")

            DispatchQueue.main.async {
                self.countryTable.reloadData()
            }
            }
        }
        catch{
            print(error.localizedDescription)
        }

    }.resume()

//网络接口

{ “状态”:200, “数据”: [ { "name": "阿富汗", “身份证”:1 }, { “名称”:“阿尔巴尼亚”, “身份证”:2 }, { "name": "阿尔及利亚", “身份证”:3 }, { "name": "美属萨摩亚", “身份证”:4 } ], "message": "所有国家的列表。" }

【问题讨论】:

    标签: swift xcode swift5 jsonparser iosdeployment


    【解决方案1】:

    试试

    guard let data = data else { return }
    let parsedData = try JSONSerialization.jsonObject(with: data) as! [String:Any]
    let tableData = parsedData["data"] as! [[String:Any]] 
    self.countryList = tableData.compactMap {  $0["name"] as? String }
    

    推荐

    do { 
       let res = try JSONDecoer().decode(Root.self,from:data)
        print(res.data)
     }
    catch {
       print(error)
     }
    

    struct Root : Codable {
       let status:Int
       let data:[Model]
    }
    
    struct Model:Codable {
      let name:String
      let id:Int
    }
    

    【讨论】:

      猜你喜欢
      • 2022-06-29
      • 2022-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-10
      • 2018-02-08
      • 2013-11-26
      • 1970-01-01
      相关资源
      最近更新 更多