2016-04-20 4 views
-1

Я работаю с веб-API для отображения информации в приложении iOS с помощью Swift. Хотите знать, как я могу разобрать что-то вроде этого внутри Swift, используя SwiftyJSON API:Разбор массивов JSON в Swift

[ 
    { 
     "messageID":"7140af4b-3751-38f7-9f34-0f66fab37ad4", 
     "messageContent":"{RETRACTED}", 
     "messageTimestamp":"7:39:00 PM EDT on 4/19/2016", 
     "messageSender":"805a6c70-db41-3218-a885-54a540a31dd0", 
     "programTimestamp":"2016-04-19 19:39:00" 
    }, 
    { 
     "messageID":"209c052f-d265-340b-8f76-efa69ea2b17e", 
     "messageContent":"{RETRACTED}", 
     "messageTimestamp":"3:02:10 PM EDT on 4/18/2016", 
     "messageSender":"805a6c70-db41-3218-a885-54a540a31dd0", 
     "programTimestamp":"2016-04-18 15:02:10" 
    } 
] 

Текущий Swift код:

func loadAllMessages() { 
    let baseURL = "{RETRACTED}"; 
    let url = NSURL(string: baseURL); 
    let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration()); 
    let task = session.dataTaskWithURL(url!) { (data, response, error) -> Void in 
     if (error == nil) { 
      let swiftyJSON = JSON(data: data!); 
      let message = Message() 
      message.setMessageContent(swiftyJSON["messageContent"].stringValue) 
      message.setMessageSender(swiftyJSON["messageSender"].stringValue) 
      message.setMessageTimestamp(swiftyJSON["messageTimestamp"].stringValue) 
      self.finishLoadingMessage(message.getMessageSender(), message: message) 
     } else { 
      print ("An unexpected error occurred. Check the baseURL."); 
     } 
    } 
    task.resume() 

} 

Спасибо!

+0

Что случилось с вашим текущим кодом? – miken32

ответ

0

JSON - это набор словарей. Поэтому вам нужно пройти через этот массив.

Обратите внимание, что я не запускал этот код. Возможно, это потребует некоторой настройки.

if error == nil { 
    if let data = data { 
     let swiftyJSON = JSON(data: data) 
     for (index, row): (String, JSON) in swiftyJSON { 
      let message = Message() 
      message.setMessageContent(row["messageContent"].stringValue) 
      message.setMessageSender(row["messageSender"].stringValue) 
      message.setMessageTimestamp(row["messageTimestamp"].stringValue) 
      self.finishLoadingMessage(message.getMessageSender(), message: message) 
     } 
    } 
    else { 
     // data should not be nil 
     // put error handling here 
    } 
} 
else { 
    // some error occurred 
} 
+0

Включение этого кода в мой код (с некоторыми изменениями для удаления ошибок) говорит: «Бросьте из« JSON »в несвязанный тип» [[String: String]] «всегда не удается», что нужно сделать, чтобы исправить это? –

+0

Удалить бросок. Избавьтесь от 'как! [[String: String]] ' – ryantxr

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

  • Нет связанных вопросов^_^