Как отправить SwftyJSON с помощью Alamofire?

У меня есть длинные данные, которые я хочу отправить на сервер API с помощью alamofire, поэтому я создал объект Json с помощью SwiftyJSON, и теперь, если я передам json в alamofire, он выдает ошибку, объясните, что мне не хватает?

Json:

{
  "Skill" : {
    "Name" : "iOS",
    "Desc" : "Objective-C, Swift"
  },
  "LangInfo" : [
    "Hindi",
    "English",
    "French",
    "Russian"
  ],
  "EduInfo" : {
    "Degree" : "MCA",
    "School" : "University of Kota",
    "Year" : "2013"
  },
  "GenInfo" : {
    "FirstName" : "Varun",
    "Email" : "[email protected]",
    "State" : "Rajasthan",
    "Address" : "Plot No. 00, Bhagwan Nagar 31,",
    "Zip" : "21354",
    "Phone" : "123456789",
    "LastName" : "Sharma"
  }
}

Код :-

var jsonObj = JSON(skilldata.data)
        println(jsonObj);

        let parameters = [
            "data": jsonObj
        ]
        Alamofire.request(.POST, BaseUrl+SaveData, parameters: parameters)
            .responseJSON { (_, _, JSON, _) in
                println(JSON)
                let dict:Dictionary<String, String> = JSON as! Dictionary<String, String>
                println(dict["status"])
        }

Здесь skilldata.data это var data = Dictionary<String, AnyObject>()

и ошибка в строке .responseJSON { (_, _, JSON, _) in Error

Редактировать №1 Код с ошибкой

Редактировать #2 Xcode версии: - 6.2.3

а также

Использование pod для Alamofire и SwiftyJson

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

pod 'Alamofire', '~> 1.2'
pod 'SwiftyJSON', '~> 2.2.0'

person Varun Naharia    schedule 10.06.2015    source источник
comment
Этот код отлично работает на игровой площадке Alamofire. Вы уверены, что это ваш настоящий блок responseJSON?   -  person Aaron Brager    schedule 10.06.2015
comment
да, я просто скопировал код   -  person Varun Naharia    schedule 10.06.2015
comment
Вы используете старую версию Swift, Xcode или Alamofire?   -  person Aaron Brager    schedule 10.06.2015


Ответы (1)


Тип JSON не соответствует ни одному объектному протоколу, поэтому вам нужно будет получить объект от jsonObj. После получения тип параметров объекта будет [String : AnyObject] и только после этого он будет соответствовать типу параметра запроса Alamofire

let parameters = [
        "data": jsonObj.object
    ]
person Zell B.    schedule 10.06.2015
comment
еще одна вещь, я отправляю json в правильном формате, смогу ли я получить весь json в $data= $_POST["data"]; ??? - person Varun Naharia; 10.06.2015
comment
это будет работать, но json больше не будет JSON. - person Jesus Rodriguez; 24.01.2016