/ / Alamofire-Anforderung mit SwiftyJSON-Parametern - ios, swift, alamofire, swifty-json

Alamofire-Anfrage mit SwiftyJSON-Parametern - ios, swift, alamofire, swifty-json

Ich würde gerne wissen, wie ich ein SwiftyJSON-Array in meine Parameter für die Alamofire-Anfrage einfügen kann.

Eigentlich verwende ich diesen Code (Swift 3), um die Parameter für die Anfrage einzustellen:

let params = ["customObjects": customObjects.map ({$ 0.toJSON ()})]

... aber dies löst eine Ausnahme aus, wenn ich versuche, die Anfrage zu starten:

Nicht erfasste Ausnahme "NSInvalidArgumentException", Grund: "Ungültiger Typ in JSON-Schreibvorgang (_SwiftValue)"

Die "customObjects" sind ein Array meiner benutzerdefinierten Modellklasse.

Wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen.

Antworten:

0 für die Antwort № 1

Ich habe die Lösung für mich gefunden:

let params = ["customObjects": customObjects.map({$0.toDictionary()})]

Und hier die toDictionary () -Funktion in meinem CustomObject:

func toDictionary() -> [String: Any] {
let dict: [String: Any] = [
"exampleKey": "exampleValue",
"exampleKey2": "exampleValue2"
]

return dict
}

Ich denke, das liegt daran, dass man Alamofire mit einrichten kann encoding: JSONEncoding.default.


0 für die Antwort № 2

Sie können ein SwiftyJSON-Objekt (das aufgerufen wird) konvertieren yourJSON hier) zu Parametern wie folgt:

let parameters : Parameters = yourJSON.dictionaryObject ?? [:]

Dann können Sie es in einer Alamofire-Anfrage wie folgt verwenden:

Alamofire.request("https://yourURL.com/somePath", method: .post, parameters: parameters, encoding:  JSONEncoding.default, headers: nil).responseJSON { response in
// ... do whatever you would like with the response
}