使用 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的主要内容,如果未能解决你的问题,请参考以下文章