2017-05-27 25 views
0

我的JSON响应JSON响应的阅读子节点如下:使用SwiftyJSON

{ 
data: { 
    type: "collections", 
    id: "dc165b3f-3600-486f-aa0b-d4719b18bb61", 
    attributes: {}, 
    relationships: { 
     shows: {}, 
     slides: { 
     links: { 
      self: "https://stage-api.cde.com/networks/online/j/collections/dc165b3f-3600-486f-aa0b-d4719b18bb61/relationships/slides", 
related: "https://stage-api.cde.com/networks/online/j/collections/dc165b3f-3600-486f-aa0b-d4719b18bb61/slides" 
}, 
     data: [ 
     { 
      type: "slides", 
      id: "935d2313-4816-44a9-a65a-06a98af2d730" 
     }, 
     { 
      type: "slides", 
      id: "daf02fda-b356-46df-b1d0-8c3212d826bf" 
     }, 
     { 
      type: "slides", 
      id: "77bbb082-5976-450a-bb48-fda9d2a44e80" 
     } 
    ] 
}, 
videos: {}, 
collections: {} 
}, 
links: {} 
} 
} 

,我需要得到所有id这是data数组下slides节点中存在的价值。我正在使用SwiftyJSON框架。

任何帮助,高度赞赏。如果不是SwiftyJSON,那么请咨询其他选项。

回答

1

试试这个:

import SwiftyJSON 

let json: JSON = ... 
let data = json["data"]["relationships"]["slides"]["data"] 
guard let dataArray = data.array else { 
    fatalError("data array NOT FOUND") 
} 
for child in dataArray { 
    guard let id = child["id"].string else { 
     fatalError("id NOT FOUND") 
    } 
    print("id: \(id)") 
} 
+0

优秀的,它的工作原理。非常感谢 –

+0

是否有可能与DispatchSemaphore(值:0)共享代码如何执行此操作,以便在使用此函数时可以获取该函数以外的值: Alamofire.request(title,headers:headers).validate ).responseJSON {response in switch response.result {case .success(let value): let json = JSON(value) let data = json [“data”] [“relationships”] [“slides”] [“data “] 为data.array中的孩子! {idx = child [“id”]。string! print(“id:\(id)”)}。 对不起,我是新手。 –

+0

@mizanrahman请用您当前的问题询问一个新问题,并返回到这个问题。这样你会得到更快/更好的结果;) –