2017-05-31 98 views
-3

我做POST请求,我得到这个响应访问嵌套的字典迅速3

{ 
    "id": "6QRqYlqpv", 
    "hostname": "twitter.com", 
    "link": "https://twitter.com/AliNatham/status/869551271409328129", 
    "title": "869551271409328129", 
    "filename": "869551271409328129.mp4", 
    "originalFormat": "mp4", 
    "originalType": "video", 
    "formats": [ 
    { 
     "format": "mp4", 
     "type": "video", 
     "url": "https://loadercdn.io/download?id=6QRqYlqpv&format=mp4", 
     "directUrl": "https://loadercdn.io/download?id=6QRqYlqpv&direct=true&format=mp4", 
     "directUrl_": "directUrl will be deprecated soon, do not use", 
     "filename": "869551271409328129.mp4" 
    }, 
    { 
     "format": "avi", 
     "type": "video", 
     "url": "https://loadercdn.io/download?id=6QRqYlqpv&format=avi", 
     "directUrl": "https://loadercdn.io/download?id=6QRqYlqpv&direct=true&format=avi", 
     "directUrl_": "directUrl will be deprecated soon, do not use", 
     "filename": "869551271409328129.avi" 
    }] 
} 

我试图访问“格式”:“MP4”像这样 打印(JSON [“格式”] [“网址“] as any) 但我得到零

+0

你用什么来解析json到swift? – pableiros

+0

guard让json =试试JSONSerialization.jsonObject(with:data,options:[])as? [String:AnyObject] else {return} – Rioodi

回答

0

您的formats是一个数组。您需要先访问阵列中的嵌套对象,然后访问url

尝试print(json["formats"][0]?["url"] as Any)

0

我解决它!

let formats = json["formats"] as! Array<[String:AnyObject]> 
print(test[0]["url"] as! String) 
+0

这是一个不好的解决方案。它假定'formats'至少有1个元素,它假定你想要的值是第一种格式。情况并非总是如此。 – rmaddy