Comment analyser cette json avec Alamofire 4 à Swift 3?
J'ai le json ci-dessous, mais impossible de comprendre comment l'analyser dans Swift 3. Mon code est ci-dessous. Le json à partir de l'API a un tableau de la racine. J'utilise Xcode 8.2.1 avec Swift 4 et Alamofire 4.0.
["items": <__NSArrayM 0x608000248af0>(
{
currency = USD;
image = "https://cdn.myDomain.com/image.jpg";
"item_title" = "Antique Table";
"name:" = "";
price = 675;
},
{
currency = USD;
image = "https://cdn.mydomain.com/image2.jpg";
"name:" = "";
price = 950;
...
Voici mon code. J'ai essayé d'obtenir un tableau r dictionnaire à partir des résultats, mais c'est toujours nul.
Alamofire.request(myURL)
.responseJSON(completionHandler: {
response in
self.parseData(JSONData: response.data!)
})
}
func parseData(JSONData: Data) {
do {
let readableJSON = try JSONSerialization.jsonObject(with: JSONData, options:.mutableContainers) as! [String: Any]
print(readableJSON)
}
catch {
print(error)
}
}
J'ai essayé cette let item = readableJSON["items"] as? [[String: Any]]
comme l'a suggéré ici mais il ne serait pas compiler avec une erreur [String:Any] has no subscript
et let item = readableJSON["items"] as? [String: Any]!
compile avec un avertissement Expression implicitly coerced from string
mais produit nul. Parsing json est la vie ou la mort pour moi.
- L'étude de cette: developer.apple.com/swift/blog/?id=37
- J'ai lu ça et peut-être que je suis juste stupide, mais je ne peux pas trouver un json forme qui correspond à la mine et au bout de 2 jours je suis venu ici.
- Voici un indice (presque une solution complète, en fait): "éléments" est un dictionnaire qui contient un tableau. Ce tableau contient les dictionnaires. // La fin, c'est fait.
- Je l'ai fait comprendre que beaucoup bu, il n'est toujours pas assez pour moi de comprendre le code qui fonctionne. J'ai pratiquement mémorisé la page liée.
- Beaucoup de ces exemples et le projet que je suis en train de travailler sur l'utilisation NSDictionary mais je veux l'utiliser [Chaîne: Tout]
Vous devez vous connecter pour publier un commentaire.
Faire quelque chose comme
let responseJSON = response.result.value as! [String:AnyObject]
alors vous serez en mesure d'accéder à des éléments dans le dictionnaire de la sorte:
Could not cast value of type '__NSArrayM' (0x10c60ddb0) to 'NSString' (0x10bc14c40)
.C'était le parser json fonction que j'ai finalement venu avec. Le problème pour cette de données json, c'est qu'il s'agit d'un dictionnaire à l'intérieur d'un tableau. Je suis un noob et la plupart des réponses et comment tos, j'ai vu ne serait pas répondre à mes données json. Voici la fonction que j'ai finalement arrivés à travaillé.
alors de mon point de vue de la classe contrôleur
Alamofire Exemple dans Swift 3
1.Tout d'abord, Utilisez deux cocoapods à votre projet.Utilisation SwiftyJSON json analyser
Mon Json est ci-dessous
{"loginNodes":[{"errorMessage":"Bienvenue À Alamofire","nom":Enamul Haque,"code d'erreur":"0","photo":null}]}
Il peut être fait de manière différente. Mais je l'ai fait ci-dessous Façon. Remarque si vous n'avez pas besoin de n'importe quel paramètre à envoyer au serveur, puis supprimer le paramètre de l'option. Il peut fonctionner méthode post ou get. Vous pouvez utiliser n'importe quel moyen. Mon Alamofire code est ci-dessous...qui fonctionne bien pour moi......
Si Vous utilisez Comme la Vue de la table Ou de la Vue de Collection ou ainsi de suite, vous pouvez l'utiliser comme ça..
Déclarer Un Tableau
var arrRes = [Chaîne:AnyObject]
Affecter la valeur de tableau comme
si((responseData.résultat.la valeur != nil)){
Dans taleView, cellForRowAt indexPath , il suffit d'utiliser
Swift 3
Alamofire Exemple dans Swift 3
importation UIKit
importation Alamofire
importation SwiftyJSON
classe ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource
{
}