Analizar una respuesta JSON desde la nube

Cuando se utiliza un servicio web que se basa en la nube, su respuesta podría estar en JSON. Si, cuando se trabaja con su servicio web basado en la nube, se va a introducir la siguiente en su navegador web

http://maps.googleapis.com/maps/api/geocode/json?sensor=trueaddress=Empire 
Contrucción del Estado

que te vuelvas un poco de JSON - lo siguiente, por ejemplo,

resultado {resultados: [{{{geometría ...límites: {noreste: {Lat: 40.7489545,lng: -73,98483449999999},suroeste: {Lat: 40.7479245,lng: -73.9865073}},localización: {Lat: 40.7484395,lng: -73.9856709}, ...}

Desde JSON es tan críptica como XML, usted entonces tiene que analizar lo que sea que JSON te da.

JSON de análisis, sin embargo, es bastante diferente de análisis sintáctico XML. JSON se basa en dos estructuras estás tranquila familiarizados con - matrices y diccionarios. El ejemplo siguiente utiliza JSON tanto:

NSError * Error = nil-NSDictionary * responseDict = [NSJSONSerialization JSONObjectWithdata: datos 
Opciones: NSJSONReadingMutableContainers error: Error] -

Al hacer el análisis sintáctico JSON, tienes pocas opciones que puede establecer así:

  • NSJSONReadingMutableContainers: Las matrices y los diccionarios que recibe de vuelta son mutables para que pueda modificarlos. El valor predeterminado es inmutable.

  • NSJSONReadingMutableLeaves: Las cuerdas que te dan la espalda son mutables para que pueda modificarlos. El valor predeterminado es inmutable.

  • NSJSONReadingAllowFragments: Especifica que el analizador debe permitir que los objetos de nivel superior que no son matrices o diccionarios. El valor por defecto requiere que los objetos de nivel superior JSON a ser una arrays o diccionarios.

Cuando se utiliza el NSJSONSerialization clase, (por lo general, pero no necesariamente) volver ya sea una matriz o diccionario que puede incluir cadenas y números e incluso otras matrices y diccionarios (creo lista de propiedades de objetos aquí).

En este caso, se puede obtener en el sitio lat y lng haciendo

NSDictionary * result = [resultados objectAtIndex: 0] -NSDictionary * geometría = [resultado objectForKey: @ "geometría"] - NSDictionary * Ubicación = [geometría objectForKey: @ "ubicación"] - latitud = [ubicación valueForKey: @ "lat"] -longitude = [ubicación valueForKey: @ "lng"] -