如何以JSON格式访问数组中的数据

时间:2014-12-22 18:20:40

标签: ios swift alamofire swifty-json

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的问题,但这让我很生气。

3 个答案:

答案 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
}