2017-05-27 23 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請用您當前的問題詢問一個新問題,並返回到這個問題。這樣你會得到更快/更好的結果;) –