使用 swift 3 访问 JSON 中的值
Posted
技术标签:
【中文标题】使用 swift 3 访问 JSON 中的值【英文标题】:Accessing values in JSON using swift 3 【发布时间】:2017-11-24 21:58:43 【问题描述】:我正在尝试使用https://api.github.com/users 获取前 30 个 GitHub 用户并将其添加到获取的用户列表中。对于每个用户;显示他们的用户名、头像和仓库数量。
选择用户后,我需要打开另一个屏幕,其中包含他们所有存储库的列表。
如何按照这种 JSON 格式访问 GitHub API
中的嵌套 URL(“repos_url”)?
"login": "mojombo",
"id": 1,
"repos_url": "https://api.github.com/users/mojombo/repos"
【问题讨论】:
How to parse a JSON file in swift?的可能重复 【参考方案1】:// don't forget
import Alamofire
import SwiftyJSON
// initialise variables
var fetchResult = [[String:AnyObject]]()
struct User
var name:String?
var id:Int?
var repo_url:String
init(name:String,id:Int,repoURL:String)
self.name = name
self.id = id
self.repo_url = repoURL
let user = [User]
fun getData()
Alamofire.request("https://api.github.com/users").responseJSON (responseData) -> Void in
if((responseData.result.value) != nil)
let response = JSON(responseData.result.value!)
print(response)
if let resData = response.arrayObject
self.fetchResult = resData as! [[String:AnyObject]]
print(self.fetchResult)
for item in self.fetchResult
print(item)
guard let login = item["login"] as! String else return
guard let id = item["id"] as! Int else return
guard let repos_url = item["repos_url"] as! String else return
let gitUser = User(name: login , id: id, repoURL: repos_url)
self.user.append(gitUser)
if self.user.count>0
self()
一旦你在 tableView 中选择了一行。 使用
在 didSelect 中获取所选项目 func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath)
let selected = user[indexPath.row]
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let newViewController =
storyBoard.instantiateViewController(withIdentifier: "SecondVC") as! SecondVC
newViewController.data = selected
self.navigationController?.pushViewController(newViewController, animated: true)
在 SecondViewController 中,您可以访问选定的数据集。
【讨论】:
感谢您的支持,但您的项目未提供有关用户拥有多少个存储库的信息。它应该来自字典:“repos_url”:“api.github.com/users/mojombo/repos”。我的问题是我应该如何访问这些数据?以上是关于使用 swift 3 访问 JSON 中的值的主要内容,如果未能解决你的问题,请参考以下文章
Swift 和 Alamofire - 访问条件语句的 JSON 值
SwiftyJson Swift 3 无法访问 JSON 中的字符串
如何将json对象的值设置为swift 3中tableView中动态呈现的视图中的标签?