2016-10-30 75 views
1
[ 
    { 
    "content": "Hello!", 
    "images": [ 
     { 
     "url": "http://url1.com" 
     }, 
     { 
     "url": "http://url2.com" 
     }, 
     { 
     "url": "http://url3.com" 
     } 
    ] 
    } 
] 

如何獲取使用SwiftyJSON的圖像URL數組?Swift - 使用SwiftyJSON從JSON獲取字符串數組

這是我嘗試過的並且沒有工作。

for (key, subJson) in json["images"] { 
if let url = subJson["url"].string { 
    print(url) 
} 
} 

如果我理解正確,我的「圖像」JSON包含一個字典數組,但我的代碼是一個字符串數組。我能做些什麼來獲得一個url字符串數組?

回答

4

根據你的JSON

if let images = json[0]["images"].array { 
    for image in images { 
    if let url = image["url"].string { 
     print(url) 
    } 
    } 
} 

根對象是一個數組[],含有images字典({})是在根陣列的第一個對象。

你可以得到的URL的陣列

if let images = json[0]["images"].array { 
    let imageArray = images.flatMap{ $0["url"].string } 
    print(imageArray) 
} 
+0

謝謝!如果我還想要一串'url'?我怎樣才能做到這一點? – imstillalive

+0

我不明白,'url' **的值是**'String'。 – vadian

+0

當我這樣做'let imageString = images.flatMap {$ 0 [「url」]。string}'我得到一個'flatmap產生...不是預期的類型爲String的上下文結果!「對不起,我很新swift。 – imstillalive