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) } 

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

3 Solutions collect form web for “iOS Swift: анализ ответа json с AFNetworking”

попробуй это

 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

  • как изменить стиль для UISegmentedControl, когда он выбран пользователем в Swift?
  • Как получить HTML-источник из URL с помощью Swift
  • Как открыть Google Карты для показа маршрута с помощью Swift
  • ? " не имеет члена с именем «индекс» в Xcode 6 beta 6
  • JSONModel и Swift Array
  • Как установить swift 3 UITextField цвет границы?
  • Отправка объекта json в запросе GET в быстром режиме в Alamofire
  • Как сделать ежедневное уведомление в 8 часов утра? (Swift 3)
  • Как загрузить изображение с изображений.xcassets в UIImage с быстрым
  • Проблема восстановления состояния iOS с помощью DrawerController
  • UNCalendarNotificationTrigger не сохраняется, если повторы не верны
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.