2015-11-03 16 views
5

Tôi có thể gửi chuỗi json thô từ phương thức đặt hoặc đăng với Alamofire bằng cách nào?Chuỗi nguyên gốc của Alamofire để đăng hoặc đặt

Tôi không thể tìm thấy bất kỳ ví dụ nào về điều đó.

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

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

nhận được lỗi:

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

Trả lời

4

Alamofire mong đợi một cuốn từ điển của [String: AnyObject]? như lỗi của bạn nói và theo mã của bạn bạn đang cố gắng để vượt qua một mảng, bạn cần phải chuyển nó sang một cuốn từ điển để thay thế. Kiểm tra chữ ký của hàm request trong Alamofire:

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

Xem ví dụ này từ 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) 
     } 

Tôi hy vọng điều này giúp bạn.

+0

Nhưng đó là mảng đối tượng, vì vậy tôi không thể chuyển đổi nó thành '[String: AnyObject]'. :/ –

+0

Có nhưng như tôi đã nói ở trên Alamofire mong đợi một từ điển không phải là một mảng, xem câu trả lời cập nhật để bạn có thể xem một ví dụ –

+0

Nhưng tôi đang cố gắng '.POST' hoặc' .PUT'. Đây là ví dụ hoặc mảng dữ liệu: '[[" id ": 10," order ": 0," name ": Test], [" id ": 12," order ": 9," name ": Test2]]' tôi không thể chuyển đổi điều này thành '[String: AnyObject]' –

Các vấn đề liên quan