Video: Developer Keynote: Get to the Fun Part (Cloud Next '19) 2024
Parte di iOS Cloud Development For Dummies Cheat Sheet
Quando si utilizza un servizio Web basato sul cloud, la risposta potrebbe essere in JSON. Se, quando si utilizza il servizio Web basato su cloud, è necessario immettere quanto segue nel proprio browser Web
// maps. googleapis. com / mappe / api / geocode / JSON? sensor = true & address = EmpireState Building e
si otterrà un po 'di JSON - il seguente, ad esempio
risultato {risultati: [{… geometria {{ limiti: { nord-est: { lat: 40. 7489545, lng: -73. 98483449999999}, sud-ovest: { lat: 40. 7479245, lng: -73. 9865073}}, posizione: { lat: 40. 7484395, lng: -73. 9856709}, …}
Dal momento che JSON è altrettanto criptico come XML, dovresti quindi analizzare qualsiasi cosa JSON ti dia.
L'analisi di JSON, tuttavia, è molto diversa dall'analisi dell'XML. JSON è costruito su due strutture con cui hai dimestichezza: array e dizionari. Il seguente esempio JSON utilizza entrambi:
NSError * error = nil; NSDictionary * responseDict = [NSJSONSerialization JSONObjectWithData: dataopzioni: NSJSONReadingMutableContainers error: & error];
Quando si esegue l'analisi JSON, sono disponibili anche alcune opzioni:
-
NSJSONReadingMutableContainers: gli array e i dizionari che si ottengono sono mutabili, quindi è possibile modificarli. L'impostazione predefinita è immutabile.
-
NSJSONReadingMutableLeaves: le stringhe che si ottengono sono modificabili, quindi è possibile modificarle. L'impostazione predefinita è immutabile.
-
NSJSONReadingAllowFragments: specifica che il parser dovrebbe consentire agli oggetti di livello superiore che non sono matrici o dizionari. L'impostazione predefinita richiede che gli oggetti di livello superiore JSON siano o matrici o dizionari.
Quando si usa la classe NSJSONSerialization, si ottiene (di solito, ma non necessariamente) una matrice o un dizionario che può includere stringhe e numeri e anche altri array e dizionari (si pensi agli oggetti della lista delle proprietà qui).
In questo caso, è possibile ottenere lat location e latng eseguendo
NSDictionary * result = [results objectAtIndex: 0]; NSDictionary * geometry = [result objectForKey: @ "geometry"]; NSDictionary * location = [geometry objectForKey: @ "location"]; latitude = [location valueForKey: @ "lat"]; longitude = [location valueForKey: @ "lng"];