Alamofireにパラメータを送信する際に問題が発生しています。これは、サーバーが期待するJSONです:Swift AlamofireのJSON書き込みに無効なタイプがあります
ユーザーが配列であるlet parameters = [“users” : users]
return sendRequest(.PUT, url: “example.com", parameters: parameters)
:
今{
“users”:[{“_id”:”1234567”}, {“_id”:”665543”}]
}
、私のスウィフトコードでは、これは私が上記の目的を構築しようとしている方法です。ここでは(私は簡単にするために、他の継承の一部を取り出している)されているもののユーザーの詳細は以下のとおりです。
class User : MyBase, CustomStringConvertible {
var name: String
var description : String {
get{
return ["_id" : self._id!].description
}
}
}
class MyBase {
var _id: String?
}
私はdebugPrint(users)
を行う場合は、これは私が得るものです:
[“users”: [["_id": "1234567"], ["_id": "665543"]]]
そしてここでのAlamofireものないのsendRequest方法:
:static func sendRequest(method: Alamofire.Method, url: String, parameters: [String: AnyObject]?) {
Alamofire.request(method, url, parameters: parameters as! [String: [User]], encoding: .JSON)
.validate()
.responseObject { (response: Response<User, NSError>) in
switch response.result {
case .Success(let value):
// do something
case .Failure(let error):
// do something else
}
}
}
そして、それはAlamofire.requestラインにスローエラーがこれです
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (MyApp.User)’
最終的には、私はユーザオブジェクトの配列ですが、これを上記のJSON形式でサーバーに送信する必要があります。スウィフトに新しいことは、私はこれを理解しようと苦労しているので、どんな助けもありがたいです。
私はそれを行い、debugPrintはこれを次のようにします:["users":[["_id": "1234567"]、["_id": "665543"]]]。しかし、残念ながら、私はまだ同じエラーが発生します。 – Prabhu
あなたの提案で質問を更新しました。 – Prabhu
さて、あなたは配列を送信しているので、JSONの書き込みで無効な型があると言っているので、JSONを期待している可能性があります。 let json_data = NSJSONSerialization.dataWithJSONObject(ユーザー、オプション:なし、エラー:なし) ? – Eyesofbanquo