Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Swift] Récupérer les données d'une requête JSON

Sujet résolu
    11 décembre 2018 à 20:10:15

    Bonjour,

    J'ai quelque problème à récupérer les données d'une requête d'une JSON

    Voici à quoi ressemble la requête:

    {
        "nhits": 82706,
        "parameters": {
            "dataset": [
                "bus-tram-circulation-passages"
            ],
            "timezone": "UTC",
            "rows": 10,
            "format": "json",
            "facet": [
                "mnemoligne"
            ]
        },
        "records": [
            {
                "datasetid": "bus-tram-circulation-passages",
                "recordid": "fcdc7f56e928ac5240063b6867cc55a67b175cf7",
                "fields": {
                    "idhor": 268469301,
                    "depart": "2018-12-11T19:17:00+00:00",
                    "departtheorique": "2018-12-11T19:17:00+00:00",
                    "arriveetheorique": "2018-12-11T19:17:00+00:00",
                    "ordre": 18914,
                    "nomarret": "CARREFOUR",
                    "fiable": "T",
                    "iddesserte": 268808763,
                    "mnemoligne": "05",
                    "dest": "CIRCULAIRE SENS B",
                    "codeparcours": "5B CIRCULAIRE 9.8",
                    "nomligne": "CIRCULAIRE VERNEAU GARE EUROPE",
                    "mnemoarret": "CARRF5B",
                    "coordonnees": [
                        47.488089,
                        -0.54279135
                    ],
                    "numarret": 9318,
                    "arrivee": "2018-12-11T19:17:00+00:00"
                },
                "geometry": {
                    "type": "Point",
                    "coordinates": [
                        -0.54279135,
                        47.488089
                    ]
                },
                "record_timestamp": "2018-12-11T04:18:07+00:00"
            }
        ],
        "facet_groups": [
            {
                "name": "mnemoligne",
                "facets": [
                    {
                        "name": "01",
                        "path": "01",
                        "count": 8693,
                        "state": "displayed"
                    },
                    {
                        "name": "04",
                        "path": "04",
                        "count": 8660,
                        "state": "displayed"
                    },
                    {
                        "name": "02",
                        "path": "02",
                        "count": 8364,
                        "state": "displayed"
                    },
                ]
            }
        ]
    }

    Je voudrais récupérer les données qui se trouve dans "facets" : les "name" et les "count" dans un tableau

    j'utilise Alamofire pour mes requêtes

    et donc quand j'essaye de "rentrer" dans ma requête couche par couche, j'ai une erreur arrivé à "facets_groups"

    func requeteAPITram(){
            AF.request("https://data.angers.fr/api/records/1.0/search/?dataset=bus-tram-circulation-passages&facet=mnemoligne").responseJSON{ response in
                print(response)
                if let horaireJSON = response.result.value {
                    let horaireObject: Dictionary = horaireJSON as! Dictionary<String, Any>
                    let facetgroupsObject: Dictionary = horaireObject["facet_groups"] as! Dictionary<String, Any>
                    print(facetgroupsObject)
                }
            }
        }
    Could not cast value of type '__NSSingleObjectArrayI' (0x274b65300) to 'NSDictionary' (0x274b65bc0).

    Je sais pas trop comment faire pour récupérer ces données

    Merci d'avance à vous

    ST

    • Partager sur Facebook
    • Partager sur Twitter
      11 décembre 2018 à 20:38:05

      Salut, t’as essayé de print horaireJSON pour voir ce que ça te sort ? 

      Sinon, utilise swiftyJSON. C’est beaucoup plus simple et c’est aussi populaire qu’alamofire. 

      (ca sert à rien de spécifier le type à chaque variable. Ca ajoute de la lourdeur.)

      • Partager sur Facebook
      • Partager sur Twitter
        14 décembre 2018 à 17:27:38

        Merci !

        j'ai utilisé swiftyJSON et j'ai réussi!

        • Partager sur Facebook
        • Partager sur Twitter

        [Swift] Récupérer les données d'une requête JSON

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown