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

Как я могу получить массив URL изображений с помощью SwiftyJSON?Swift - Получить массив строк из JSON с помощью SwiftyJSON

Это то, что я пробовал и не работал.

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}' I get a flatmap производит ... не ожидаемый контекстуальный результат типа String! "Извините. Я очень новичок в swift. – imstillalive