2016-03-23 4 views
1

Ich habe es schwer, etwas Einfaches zu tun. Die Daten, die ich senden möchte, ist die folgende:Alamofire sendet Objekt als Parameter

{ 
    "nickname":"Rado", 
    "social": { 
     "data: { 
     "accesstoken":"xx", 
     "applicationId":"xx", 
     "userId":"xx" 
     }, 
     "type":"whatever" 
    } 
    } 

Derzeit mache ich das:

  let params = [ 
       "nickname": userName, 
       "social": [ 
        "type": "whatever", 
        "data": [ 
         "userId": accessToken.userID, 
         "accesstoken": accessToken.tokenString, 
         "applicationId": accessToken.appID 
        ] 
       ] 
      ] 

Alamofire.request(.POST, "url/users", parameters: params, headers: nil) 
       .responseJSON { response in 

}

Als Antwort bekomme ich diese:

{ 
"nickname":"Rado", 
"social[data][userId]":"xx", 
"social[data][applicationId]":"xx", 
"social[data][accesstoken]":"xx", 
"social[type]":"something" 
} 

Jeder Rat wird geschätzt!

+0

Was ist das Problem? Kannst du genauer sein? – TangZijian

+0

Ist das nicht offensichtlich? Das erwartete Ergebnis (erster Code) ist anders als das was ich bekomme (dritter Code). –

Antwort

2

Die Lösung erwies sich als wirklich einfach. Mir fehlte Codierung: JSON

Alamofire.request(.POST, "url/users", parameters: params, headers: nil, encoding: .JSON) 
     .responseJSON { response in 

    } 
+0

Das gleiche Problem hier. JSONEncoding.default war die Lösung für mich. Vielen Dank –