2015-11-03 48 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]' –