Video: Wat is RSS - Google Reader 2024
Een deel van iOS Cloud Development For Dummies Cheat Sheet
Wanneer u een webservice gebruikt die is gebaseerd op de cloud, is uw reactie mogelijk in JSON. Als u bij het werken met uw cloudgebaseerde webservice het volgende moet invoeren in uw webbrowser
// maps. googleapis. com / maps / api / geocode / JSON? sensor = true & address = EmpireState Building &
u krijgt wat JSON terug - het volgende, bijvoorbeeld
resultaat {resultaten: [{… geometry {{ grenzen: { noordoosten: { lat: 40. 7489545, lng: -73. 98483449999999}, zuidwesten: { lat: 40. 7479245, lng: -73. 9865073}}, locatie: { lat: 40. 7484395, lng: -73. 9856709}, …}
Omdat JSON net zo cryptisch is als XML, zou u dan moeten analyseren wat JSON u ook biedt.
Parsing JSON verschilt echter behoorlijk van het parseren van XML. JSON is gebouwd op twee structuren waar je stil van bent - arrays en woordenboeken. In het volgende JSON-voorbeeld worden beide gebruikt:
NSError * error = nil; NSDictionary * responseDict = [NSJSONSerialization JSONObjectWithData: dataoptions: NSJSONReadingMutableContainers error: & error];
Wanneer u de JSON-analyse uitvoert, heeft u enkele opties die u ook kunt instellen:
-
NSJSONReadingMutableContainers: de arrays en woordenboeken die u terugkrijgt, kunnen worden gewijzigd, zodat u ze kunt wijzigen. De standaard is onveranderlijk.
-
NSJSONReadingMutableLeaves: de strings die u terugkrijgt, kunnen worden gewijzigd, zodat u deze kunt wijzigen. De standaard is onveranderlijk.
-
NSJSONReadingAllowFragments: geeft aan dat de parser objecten op het hoogste niveau moet toestaan die geen arrays of woordenboeken zijn. Voor de standaardwaarde moeten de JSON-objecten op het hoogste niveau een arrays of woordenboeken zijn.
Wanneer u de klasse NSJSONSerialization gebruikt, krijgt u (meestal, maar niet noodzakelijkerwijs) een array of woordenboek terug die strings en getallen en zelfs andere arrays en woordenboeken kan bevatten (denk hier aan eigenschappen van de lijst met objecten).
In dit geval zou je op de locatie lat en lng kunnen komen door
NSDictionary * result = [results objectAtIndex: 0] te doen; NSDictionary * geometry = [result objectForKey: @ "geometry"]; NSDictionary * location = [geometry objectForKey: @ "location"]; latitude = [locatiewaardeForKey: @ "lat"]; longitude = [locatiewaardeForKey: @ "lng"];