2015-11-03 5 views
5

Wie kann ich rohe JSON-Zeichenfolge von Put oder Post-Methode mit Alamofire senden?Alamofire rohe JSON Zeichenfolge zu posten oder setzen

Ich kann kein Beispiel dafür finden.

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

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

immer Fehler:

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

Antwort

4

Alamofire erwarten, ein Wörterbuch von [String: AnyObject]? als Fehler gesagt und nach Ihren Code, den Sie versuchen, ein Array zu übergeben, müssen Sie es in ein Wörterbuch, anstatt zu konvertieren. Überprüfen Sie die Signatur der Funktion request in Alamofire:

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

Sehen Sie dieses Beispiel aus dem 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) 
     } 

ich diese Hilfe hoffen, dass Sie.

+0

Aber das ist ein Array von Objekten, also kann ich es nicht in '[String: AnyObject]' konvertieren. :/ –

+0

Ja, aber wie ich oben sagte Alamofire erwarten ein Wörterbuch nicht ein Array, siehe aktualisierte Antwort für Sie ein Beispiel sehen –

+0

Aber ich versuche '.POST' oder' .PUT'. Dies ist ein Beispiel oder Datenfeld: '[[" id ": 10," order ": 0," name ": Test], [" id ": 12," order ": 9," name ": Test2]]' Ich kann dies nicht konvertieren in '[String: AnyObject]' –