0

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"].stringValue可以轻松访问第一个项目的名称(名称为 Mobile app Android)

但是如何访问 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 的问题了,但这让我抓狂。

4

3 回答 3

0

您的代码示例中发生了很多事情——可能太多了,无法通过一个 Stack Overflow 问题/答案来解决。

我强烈建议回到 Apple 的 Swift 和 iOS 应用程序模式资源。要重新讨论的主题将包括同步与异步编程、身份验证以及将数据源与表视图一起使用。

于 2014-12-23T20:03:14.867 回答
0

为什么不使用SwiftyJSON方式Swifty???

尝试这个:

let names = json["projects"].arrayValue.map {
    $0["name"].stringValue
}
于 2016-05-21T23:36:52.493 回答
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)
 }
于 2016-01-07T21:53:46.817 回答