2015-11-03 15 views
5

如何發送原始json字符串從放置或張貼方法與Alamofire?Alamofire原始JSON字符串張貼或放

我找不到任何示例。

let params = Mapper().toJSONString(results) // json string with array of objects 

Alamofire.request(.PUT, Config().apiGroup, parameters: params) 

收到錯誤:

Cannot convert value of type 'String?' to expected argument type '[String : AnyObject]?' 

回答

4

Alamofire期待[String: AnyObject]?字典作爲你的錯誤說,並根據你的代碼中試圖傳遞一個數組,你需要將其轉換爲一個字典來代替。檢查功能request的簽名Alamofire:

func request(method: Method, _ URLString: URLStringConvertible, 
      parameters: [String : AnyObject]? = default, 
      encoding: ParameterEncoding = default, 
       headers: [String : String]? = default) -> Request 

Alamofire doc見這個例子:

let params = Mapper().toJSONString(results) // json string with array of objects 

Alamofire.request(.PUT, "http://httpbin.org/get", parameters: ["params": params]) 
    .response { request, response, data, error in 
     print(request) 
     print(response) 
     print(data) 
     print(error) 
     } 

我希望這可以幫助您。

+0

但是這是對象數組,所以我不能將它轉換爲'[String:AnyObject]'。 :/ –

+0

是的,但正如我上面說的Alamofire期望字典不是一個數組,看到更新的答案你可以看到一個例子 –

+0

但我想'.POST'或'.PUT'。這是示例或數據數組:[[「id」:10,「order」:0,「name」:Test],[「id」:12,「order」:9,「name」:Test2]]'我不能將其轉換爲'[String:AnyObject]' –