2015-12-03 2 views
0

У меня есть следующий JSON, и он проверяется с помощью JSONLint.com, моя единственная проблема в том, что я не могу получить из него все значения.Получение значений из объекта JSON в Swift 2.0

{ 
"success": true, 
"message": null, 
"content": [{ 
    "url": "6\/image_2.png", 
    "date_added": "2015-12-02 22:43:05", 
    "comments": ["Awesome Pic", "WOOHOOOOO THIS IS GREAT"], 
    "likes": [] 
}, { 
    "url": "6\/image_4.png", 
    "date_added": "2015-12-02 22:42:59", 
    "comments": [], 
    "likes": [] 
}, { 
    "url": "2\/image_1.png", 
    "date_added": "2015-12-01 06:43:48", 
    "comments": [], 
    "likes": [] 
}, { 
    "url": "2\/image_4.png", 
    "date_added": "2015-12-01 06:43:48", 
    "comments": [], 
    "likes": [] 
}, { 
    "url": "2\/image_5.png", 
    "date_added": "2015-12-01 06:43:48", 
    "comments": ["EhHHHH"], 
    "likes": [] 
}]} 

Я пробовал все, но он просто терпит неудачу. Вот что я до сих пор.

if(response["success"] as! Int == 1){ 
    if let images = response["content"] as AnyObject?{ 
      // Does not work if I put NSDictionary? instead of AnyObject 
      // PRINTS THE OBJECT 
      print(images) 
      if let url = images["url"] as String?{ 
       // DOES NOT WORK 
       print(url) 
      } 
     } 
    }else{ 
     // Print error 
     let response = response["message"] as! String 
     print(response) 
    } 
+0

это [ответ] (http://stackoverflow.com/a/31296955/5222077) должен помочь – kye

ответ

2

content - это коллекция, а не один объект. Итак, вместо NSDictionary, вы должны отдать его NSArray и перебрать каждый элемент.

let isSuccess = response["success"] as! Bool 
if(isSuccess) 
{ 
    if let dataArr=response["content"] as? NSArray 
    { 
     for item in dataArr 
     { 
     if let itemDict = item as? NSDictionary 
     { 
      let url= itemDict["url"] as! String 
      //Access other properties also here 
     } 
     } 
    } 
} 
+0

Этот ответ работает как шарм. Я думаю, что я все это чувствую. Мне нужно преобразовать комментарии в NSArray, чтобы также правильно все комментарии были корректными? –

+0

Да. Вам нужно бросить 'itemDict [" comments "]' в 'NSArrray' и пропустить это, как то, что мы сделали с коллекцией контента. – Shyju

Смежные вопросы