使用 SwiftyJSON 解析 JSON

Posted

技术标签:

【中文标题】使用 SwiftyJSON 解析 JSON【英文标题】:Parsing JSON with SwiftyJSON 【发布时间】: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],您可以查看整个文件。 【参考方案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 的第二个屏幕中。我在原始视图控制器上的班级中获取表格视图控制器时遇到问题。

以上是关于使用 SwiftyJSON 解析 JSON的主要内容,如果未能解决你的问题,请参考以下文章

使用 SwiftyJSON 解析 JSON 的问题

使用 SwiftyJSON 解析 json

使用 swiftyJson 解析 JSON

使用 SwiftyJSON 解析 JSON 响应

使用 SwiftyJSON 将 JSON 解析为结构

尝试使用 swiftyJSON 快速解析 JSON