【问题标题】:Parsing JSON with SwiftyJSON使用 SwiftyJSON 解析 JSON
【发布时间】:2017-01-22 21:32:33
【问题描述】:

我正在处理一个项目,我从网站获取的 JSON 文件没有任何(密钥)可供我开始解析。因此,当我使用代码中的行时,let userInfo = swiftyJSON[].arrayValue 我将从 JSON 文件中获取所有信息。我的问题是我需要进一步解析它,以便我可以填充 UITableView,但我似乎无法将它解析得更具体。

这是我的 JSON 中的代码

let externalURL = "http://jsonplaceholder.typicode.com/users"

func getJSON(){
            let url = URL(string: externalURL)
            let request = NSURLRequest(url: url! as URL)
            let session = URLSession(configuration:URLSessionConfiguration.default)
            let task = session.dataTask(with: request as URLRequest) {(data, response, error) -> Void in
                if error == nil {
                    let swiftyJSON = JSON(data: data!)
                    let userInfo = swiftyJSON[].arrayValue
                    print(userInfo)
    }
                else{
                    print("There was an error")
                }
            }
            task.resume()
        }

【问题讨论】:

  • My problem is that I need to parse it further so I can fill a UITableView and I cant seem to parse it to be more specific. 我们没有足够的信息来帮助您。什么是 JSON 架构。您希望您的解析如何“更具体”?
  • 我只想从 JSON 中获取少量信息(即姓名、电话和电子邮件)。 [ { "id": 1, "name": "Leanne Graham", "username": "Bret", "email": "Sincere@april.biz", "address": { "street": "Kulas Light", "suite": "Apt. 556", "city": "Gwenborough", "zipcode": "92998-3874", "geo": { "lat": "-37.3159", "lng": "81.1496" } }]
  • 如果您查看 URL [jsonplaceholder.typicode.com/users],您可以查看整个文件。

标签: ios json swift uitableview


【解决方案1】:

起点:

let swiftyJSON = JSON(data: data!)
if let userInfo = swiftyJSON.array {
   for user in userInfo {
     print(user["name"].string, user["email"].string, user["phone"].string)
     if let address = user["address"].dictionary {
         print(address["city"]?.string)
     }
   }
}

所有打印的值都是可选的。

【讨论】:

  • 谢谢。那么如何将这些信息添加到UITableView, UITableViewCell 中?
  • 这取决于您的数据源模型(字典、自定义结构/类或其他)。
  • 上面的代码是把它放到字典里还是现在还在数组里。字典更容易正确吗?
  • 如何在表格视图中从上述代码中获取选项。我的表格视图位于 UI 的第二个屏幕中。我在原始视图控制器上的班级中获取表格视图控制器时遇到问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
  • 2017-05-31
相关资源
最近更新 更多