Comment puis-je utiliser JSON tableaux avec Alamofire paramètres?
Je vais avoir un peu de mal à structurer mes paramètres de sorte que notre serveur API serait en mesure de le lire comme JSON valide.
Alamofire utilise les paramètres comme ceci dans swift langue
let parameters : [String: AnyObject] =
[
"string": str
"params": HOW I INSERT A VALID JSON ARRAY HERE
]
Le problème est que AnyObject ne semble pas accepter JSON alors, comment aurais-je envoyer /créer une structure comme ceci avec swift?
{
"string": str, "params" : [
{
"param1" : "something",
"param2" : 1,
"param3" : 2,
"param" : false
},
{
"param1" : "something",
"param2" : 1,
"param3" : 2,
"param" : false
}]
}
Ce que vous appelez un "tableau JSON" ici est juste un tableau de dictionnaires. Ce n'est pas JSON jusqu'à Alamofire l'encode en JSON pour la demande.
OriginalL'auteur Miika Pakarinen | 2015-05-22
Vous devez vous connecter pour publier un commentaire.
Prises de Alamofire's GitHub page:
EDIT: Et à partir de votre exemple:
Pour le montage: Correct, un peu mais j'ai encore besoin d'insérer le "params" comme un objet, pas une codés en dur de la structure.
Si la valeur est codée en dur ou de la construction d'une autre manière n'est pas pertinent.
Merci beaucoup!
c'est la bonne réponse!
OriginalL'auteur Lior Pollak
Résolu moi-même. Je peux le faire
Où le tableau est Dictionnaire (String, AnyObject). Le problème que j'ai eu avec cette solution, c'est que vous ne pouvez pas insérer des valeurs booléennes dans ce genre de dictionnaire, ils vont tout simplement être convertis en nombres entiers. Mais apparemment alamofire encodage JSON (je pense) envoie comme des vraies/fausses valeurs, néanmoins.
OriginalL'auteur Miika Pakarinen
Vous avez besoin pour créer un NSArray objet pour les paramètres de tableau.
OriginalL'auteur Fuping
Swift 2.2 et à l'aide de SwiftyJSON.swift
Vous pouvez l'utiliser comme ça.
OriginalL'auteur idris yıldız
Dans ce cas, il est nécessaire de passer de la matrice de directement comme paramètre pour une alamofire demande, la méthode suivante a fonctionné pour moi.
source: https://github.com/Alamofire/Alamofire/issues/1508
OriginalL'auteur Nithin Haridas
si vous utilisez SwiftyJSON, vous pouvez écrire comme cela
OriginalL'auteur Rinku