Vidéo: Azure Friday | Serverless APIs with Azure Function Proxies 2024
Fait partie de iOS Cloud Development For Dummies Cheat Sheet
Lorsque vous utilisez un service Web basé sur le cloud, votre réponse peut être dans JSON. Si, lors de l'utilisation de votre service Web en nuage, vous saisissez ce qui suit dans votre navigateur Web
// maps. googleapis. com / maps / api / géocode / json? sensor = true & address = EmpireState Building &
vous obtiendriez du JSON - ce qui suit, par exemple
result {results: [{… géométrie {{ limites: { nord-est: { lat: 40. 7489545, lng: -73. 98483449999999}, sud-ouest: { lat: 40. 7479245, lng: -73. 9865073}}, emplacement: { lat: 40. 7484395, lng: -73. 9856709}, …}
Puisque JSON est aussi cryptique que XML, vous devrez alors analyser ce que JSON vous donne.
Parser JSON, cependant, est assez différent de l'analyse XML. JSON est construit sur deux structures que vous connaissez bien: les tableaux et les dictionnaires. L'exemple JSON suivant utilise les deux:
NSError * error = nil; NSDictionary * responseDict = [NSJSONSerialization JSONObjectWithData: donnéesoptions: erreur NSJSONReadingMutableContainers: & erreur];
Lorsque vous effectuez l'analyse JSON, vous avez également quelques options à définir:
-
NSJSONReadingMutableContainers: Les tableaux et les dictionnaires que vous récupérez sont modifiables afin que vous puissiez les modifier. La valeur par défaut est immuable.
-
NSJSONReadingMutableLeaves: Les chaînes que vous récupérez sont modifiables afin que vous puissiez les modifier. La valeur par défaut est immuable.
-
NSJSONReadingAllowFragments: spécifie que l'analyseur doit autoriser les objets de niveau supérieur qui ne sont pas des tableaux ou des dictionnaires. La valeur par défaut requiert que les objets de niveau supérieur JSON soient des tableaux ou des dictionnaires.
Lorsque vous utilisez la classe NSJSONSerialization, vous récupérez (généralement mais pas nécessairement) un tableau ou un dictionnaire pouvant inclure des chaînes et des nombres et même d'autres tableaux et dictionnaires (pensez aux objets de liste de propriétés ici).
Dans ce cas, vous pouvez obtenir à l'emplacement lat et lng en faisant
NSDictionary * result = [résultats objectAtIndex: 0]; NSDictionary * geometry = [résultat objectForKey: @ "géométrie"]; NSDictionary * location = [géométrie objectForKey: @ "emplacement"]; latitude = [emplacement valueForKey: @ "lat"]; longitude = [emplacement valueForKey: @ "lng"];