POST mehrere json-Objekte in Alamofire POST-Methode - Swift/IOS
Sorry, wenn meine Frage nicht klar, ich werde versuchen, mich klar mit einer Erklärung. So, hier ist genau das, was ich versuche zu tun, ich versuche, Alamofire zu post mehr als einen Kommentar (Etwas, dass meine app implementiert und gespeichert werden als JSON-Objekt, wenn der Benutzer schreibt einen Kommentar). Ich bin übergeben diese JSON Kommentare zu meinem post-routine, wo ich verwenden kann SwiftyJSON zum extrahieren der einzelnen Werte. Noe, das Ding ist, ich weiß, wie die Parameter, wenn ich versuche, berechtigen Sie den Benutzer wie folgt vor,
var parameters = [
"userName": userName,
"password": passwordSalt,
"somethingElse": somethingElse
]
var err: NSError?
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(parameters , options: nil, error: &err)
ist das ganz einfach, bis hier, jetzt kommt mein problem. Ich versuche, alamofire post mehrere json-Objekte, die sollte so Aussehen
[
{
"comment": "my First Comment",
"commentDate": "2014-05-13 14:30 PM",
"isSigned": 1,
"patientId": 2,
"documentId": 3
},
{
"comment": "my SecondComment",
"commentDate": "2014-05-14 14:30 PM",
"isSigned": 2,
"patientId": 3,
"documentId": 4
},
{
"comment": "my third Comment",
"commentDate": "2014-05-15 14:30 PM",
"isSigned": 3,
"patientId": 4,
"documentId": 5
}
]
Wie erstelle ich über ein array/json (ich bin mir nicht ganz sicher, was zu nennen dies) durch Iteration von JSON-Objekt? Ich wissen, wie man die JSON-Werte aus dem JSON-Objekt alles, was ich verlange, ist, wie diese zu erstellen Parameter variable zum speichern der Daten wie oben Beispiel. Ist es überhaupt möglich, dies zu tun mit Alamofire? (POST mehrere Objekte auf einmal)
Habe ich versucht, ein paar Möglichkeiten, aber Sie hat nicht funktioniert
-
var dictArray = [Dictionary<String, Any>] var dict = Dictionary<String, Any>
Während der Iteration über JSON-Objekt eingefügt wird jeder Wert in dict und angehängt dict zu dictArray, wenn ich jetzt versuche, dictArray als Parameter .dataWithJSONObject es nicht wie das Objekt.
-
var dict = Dictionary<String, AnyObject> var array = NSArray()
extrahiert die einzelnen Werte der Iteration über das JSON-Objekt eingefügt und Sie in dict und versuchte einfügen dict in ein array. Aber das gibt ein anderes problem. Die Art und Weise es baut die Objekte, die Verschieden ist von dem, was erforderlich ist, wie folgt.
[ { comment: my First Comment, commentDate: 2015-05-13 13:30 PM"", isSigned: 1, patientId: 2, documentId: 3 }, { comment: my Second Comment, commentDate: 2015-05-13 13:30 PM"", isSigned: 2, patientId: 5, documentId: 4 }, { comment: my third Comment, commentDate: 2015-06-13 13:30 PM"", isSigned: 5, patientId: 1, documentId: 9 } ]
Hier die Schlüssel nicht eingewickelt in Anführungszeichen (Richtiger Weise: "Kommentar", falschen Weg: Kommentar).
Hatte jemand posten Sie mehrere Objekte, ist alamofire in der Lage, das zu tun? Ich hoffe ich habe die Frage klar. Sorry, wenn dies ist auch einfach eine Frage zu beantworten, ich habe meine gesamte Tages herauszufinden, dies aber nicht geklappt hat.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die korrekte Darstellung in Swift für das array von Kommentar-Objekte, die Sie gepostet haben, würde so Aussehen:
Senden Sie eine einzige Kommentar wäre ziemlich einfach:
Jedoch, um zu senden, eine Reihe von Kommentaren, scheint, wie Sie haben würde, zu generieren, die URLRequest-Ihre selbst-und dann übergeben es an Alamofire wie folgt:
Wenn du könntest, ändern Sie die API-backend, um zu akzeptieren ein Objekt mit mehreren Kommentaren, können Sie auch senden Sie Sie auf diese Weise:
Grüße.
Besser wäre
Wörterbuch erstellen und array Wörterbuch-var
Dann Durchlaufen, wie viele Parameter Sie brauchen, um zu senden, aus der Datenquelle kann entweder ein array oder was auch immer.
Hier mein Szenario
Müssen, um Antwort auf alle Fragen (eine beliebige Zahl/Größe)
Ich hatte ein ähnliches Problem in meinem Projekt während der Arbeit mit einer API, die haben jetzt ermöglichen die Buchung von mehreren Objekten auf einmal. Die Formatierung des Arrays, wie oben bereits erwähnt in Ordnung ist.
Dann habe ich eine for-Schleife für die post jedes Objekt des Arrays zu posten der API.
Effizientere Möglichkeiten, wenn die API ermöglicht, aber sonst flow funktioniert Super.