Ios 如何在xcode 8中的对象中引用数组中的对象?
我希望在xcode 8中尝试引用这个json()中的所有“标题”。问题是,在我提取标题数据之前,需要引用(我相信)一个对象和数组,我不知道如何做到这一点 到目前为止,我得到的是:Ios 如何在xcode 8中的对象中引用数组中的对象?,ios,arrays,json,swift,object,Ios,Arrays,Json,Swift,Object,我希望在xcode 8中尝试引用这个json()中的所有“标题”。问题是,在我提取标题数据之前,需要引用(我相信)一个对象和数组,我不知道如何做到这一点 到目前为止,我得到的是: func fetchFeed(){ let urlRequest = URLRequest(url: URL(string: "http://itunes.apple.com/us/rss/topalbums/limit=10/json")!) let task = URLSession.shared
func fetchFeed(){
let urlRequest = URLRequest(url: URL(string: "http://itunes.apple.com/us/rss/topalbums/limit=10/json")!)
let task = URLSession.shared.dataTask(with: urlRequest) { (data,response,error) in
if error != nil {
print(error)
return
}
self.artists = [Artist]()
do {
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String : AnyObject]
if let feedFromJson = json["feed"]?["entry"] as? [[String : AnyObject]] {
for feedFromJson in feedsFromJson {
let feed = Feed()
if let entry = feedFromJson["entry"] as? String, let author = feedFromJson["domain"] as? String {
feed.entry = entry
article.headline = title
}
self.articles?.append(article)
}
}
DispatchQueue.main.async {
self.tableview.reloadData()
提前感谢您的帮助
let titleDict = feedFromJson["title"] as? Dictionary
let title = titleDict["title"] as? String
article.headline = title
if let feedFromJson = (json["feed"] as Dictionary)?["entry"] as? [[String : AnyObject]] {
let titleDict = feedFromJson["title"] as? Dictionary
let title = titleDict["title"] as? String
article.headline = title
if let feedFromJson = (json["feed"] as Dictionary)?["entry"] as? [[String : AnyObject]] {
我正在努力了解你需要什么。如果你想得到一篇
文章
数组,其中标题
是条目的标题标签,下面是我如何作弊的
func articles(from json: Any?) -> [Article] {
guard let json = json as? NSDictionary, let entries = json.value(forKeyPath: "feed.entry") as? [NSDictionary] else {
return []
}
return entries.flatMap { entry in
guard let title = entry.value(forKeyPath: "title.label") as? String else {
return nil
}
var article = Article()
article.headline = title
return article
}
}
你这样称呼它
self.articles = articles(from: json)
NSDictionary
的方法value(forKeyPath:)
近乎神奇。调用json.value(forKeyPath:“feed.entry”)
返回一个字典数组。每个字典都是json中的“entry”
对象。接下来,我将每个条目映射为调用entry.value(forKeyPath:“title.label”)
返回一个字符串
<>如果这不仅仅是一个快速的解决方案,那么我会考虑添加到你的项目。
func articles(from json: Any?) -> [Article] {
return JSON(json)["feed"]["entry"].arrayValue.flatMap { entry in
guard let title = entry["title"]["label"].string else {
return nil
}
var article = Article()
article.headline = title
return article
}
}
我正在努力了解你需要什么。如果你想得到一篇
文章
数组,其中标题
是条目的标题标签,下面是我如何作弊的
func articles(from json: Any?) -> [Article] {
guard let json = json as? NSDictionary, let entries = json.value(forKeyPath: "feed.entry") as? [NSDictionary] else {
return []
}
return entries.flatMap { entry in
guard let title = entry.value(forKeyPath: "title.label") as? String else {
return nil
}
var article = Article()
article.headline = title
return article
}
}
你这样称呼它
self.articles = articles(from: json)
NSDictionary
的方法value(forKeyPath:)
近乎神奇。调用json.value(forKeyPath:“feed.entry”)
返回一个字典数组。每个字典都是json中的“entry”
对象。接下来,我将每个条目映射为调用entry.value(forKeyPath:“title.label”)
返回一个字符串
<>如果这不仅仅是一个快速的解决方案,那么我会考虑添加到你的项目。
func articles(from json: Any?) -> [Article] {
return JSON(json)["feed"]["entry"].arrayValue.flatMap { entry in
guard let title = entry["title"]["label"].string else {
return nil
}
var article = Article()
article.headline = title
return article
}
}
感谢Jeffery和DengApro的提示,他们今晚将使用它们,并会让你知道它们是如何进行的。Cheers Jeffery的方法更快捷,.flatMap是一个很好的单子。我的是直观的,找出结构,获取数据,JSON并不难。我也更喜欢SwiftyJSON。感谢Jeffery和DengApro的提示,他们今晚将使用它们,并将让你知道它是如何运行的。ChearsJeffery的方法更快捷,.flatMap是一个很好的单子。我的方法直观,能理解结构,能获取数据,JSON并不难。我也更喜欢SwiftyJSON。你说得对,value(forKeyPath)是神圣的。这解决了我的问题。谢谢!!你说得对,value(forKeyPath)是神圣的。这解决了我的问题。谢谢!!