iOS Swift: анализ ответа json с AFNetworking

Таким образом, я использую AFNetworking 2.0 (ObjC framework с Bridging-Header), чтобы сделать некоторые запросы на локальном сервере. Я выполнил несколько руководств, чтобы закодировать его с помощью Swift. Это код:

var success = { (operation:AFHTTPRequestOperation!, response:AnyObject!) -> Void in println(response.description) successBlock(result:response.description) } var failure = { (operation:AFHTTPRequestOperation!, response:NSError!) -> Void in println(response.description) errorBlock(error:response.description) } var manager = AFHTTPRequestOperationManager() manager.responseSerializer = AFJSONResponseSerializer(); manager.GET("http://127.0.0.1:8080/api/manufacturer", parameters: nil, success: success, failure: failure) 

Он извлекает json и печатает его успешно. Ответ такой:

 ( { "_id" = 539f0973e3c7f4ab1f6078f5; name = Manufacturer01; }, { "_id" = 539f18c5e3c7f4ab1f6078f6; name = Manufacturer02; } ) 

Тем не менее, я не могу разобрать его … Я попробовал response[0] чтобы получить первый элемент, но при попытке выполнить сбой симулятора и даже Xcode6: (lldb) > po response[0] . Я пробовал все, каждый пример, который я видел, объясняет, как печатать результат, но ничего не разбирать в каждом поле.

Объект response выглядит так, когда я пытаюсь его отладить:

 value = Some { Some = (instance_type = Builtin.RawPointer = 0x0b240710 -> 0x00bc5da0 (void *)0x00bc5db4: __NSCFArray) } 

Любая подсказка? Заранее спасибо!

попробуй это

 if let responseArray = response as? NSArray { let firstElement = responseArray[0] // do something with the first element } 

Я думаю, ваша проблема заключается в отправке обратно в successBlock. Поскольку полученная информация не отображается должным образом в объекте описания.

 var jsonArrayDictionary = response.result.value as? [[String: Any]] for item in jsonArrayDictionary { dump(item["_id"] as? String) dump(item["name"] as? String) } 

Вероятно, это возможно.

Ваш примерный ответ недействителен JSON.

Если ваш пример представляет собой массив, JSON будет иметь квадратные скобки вместо parens, имена полей в кавычках и двоеточия вместо знаков равенства. Например:

 [ { "_id": 1234, "name": "foo bar" }, { "_id": 12122, "name": "baz" } ] 

Также см. Один из JSON linters, например: jsonlint.com

  • Преобразование шестнадцатеричного в десятичное в быстром
  • Можем ли мы сделать собственный CNContainer? быстрый
  • Почему мой #selector не работает?
  • быстрый протокол, свойство IBOutlet не может иметь неъектный тип
  • Как выполнить автоопределение ImageView внутри CollectionView, чтобы ячейка к краю имела такое же расстояние, что и интервал между внутренними ячейками?
  • Синтаксис вызова rx_itemsWithCellFactory
  • Как вызвать UIAccessibilityRequestGuidedAccessSession ()
  • Как получить значение textField в UIAlertController?
  • gcm push-уведомление: первый успех, затем не зарегистрированный в IOS
  • быстрый компилятор показывает ошибку ожидаемого объявления?
  • Как получить AVPlayer на веб-странице с помощью WKWebView в swift?
  • Давайте будем гением компьютера.