Swift - 使用SwiftyJSON从JSON获取字符串数组

问题描述:

[ 
    { 
    "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字符串数组?

根据你的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