JSON:
{
"projects":[
{
"id":113,
"name":"Mobile app Android",
"description":"",
"created_on":"2014-10-03T16:53:56+02:00",
"updated_on":"2014-12-03T16:59:45+01:00"
},
{
"id":142,
"name":"Mobile app iOS",
"created_on":"2014-12-11T18:30:55+01:00",
"updated_on":"2014-12-11T18:30:55+01:00"
},
{
"id":52,
"name":"Test project",
"identifier":"grafikr",
"description":"",
"created_on":"2013-10-14T17:21:33+02:00",
"updated_on":"2014-10-10T17:40:47+02:00"
},
{
"id":37,
"name":"Sample project",
"identifier":"grafikf",
"description":"",
"created_on":"2013-09-18T16:31:25+02:00",
"updated_on":"2013-09-26T13:11:58+02:00"
}
],
"total_count":4,
"offset":0,
"limit":25
}
很容易通过 var name = json [" projects"] [0] [" name&#]访问第一个项目的名称(名称为Mobile app Android) 34。] stringValue的
但是如何访问SwiftyJSON中的所有名称?如果我创建一个变量 var projects = json [" projects"] ,它会给我:
[
{
"id" : 113,
"created_on" : "2014-10-03T16:53:56+02:00",
"name" : "Mobile app Android",
"description" : "",
"updated_on" : "2014-12-03T16:59:45+01:00"
},
...
现在我不再有从数据制作NSDictionary的问题,但这让我很生气。
答案 0 :(得分:0)
您的代码示例中发生了很多事情 - 可能太多,无法通过单个Stack Overflow问题/答案解决。
我强烈建议回到Apple的Swift和iOS应用程序模式资源。重新访问的主题包括同步与异步编程,身份验证以及使用带有表视图的数据源。
答案 1 :(得分:0)
这应该可行。你的json还包含“total_count”,看着它,我认为这是项目数量的计数。拉出计数,循环直到计数并获取名称。
var names = [String]()
let count = json["total_count"].int
for index in 0..<count {
let name = json["projects"][index]["name"].string
names.append(name)
}
答案 2 :(得分:0)
为什么不使用 SwiftyJSON
Swifty
方式???
试试这个:
let names = json["projects"].arrayValue.map {
$0["name"].stringValue
}