Vídeo: Developer Keynote: Get to the Fun Part (Cloud Next '19) 2024
Parte do iOS Cloud Development For Dummies Cheat Sheet
Quando você usa um serviço da Web baseado na nuvem, sua resposta pode estar no JSON. Se, ao trabalhar com seu serviço da Web baseado em nuvem, você deve inserir o seguinte em seu navegador
// mapas. googleapis. com / maps / api / geocode / json? sensor = true & address = EmpireState Building &
você retornaria algum JSON - o seguinte, por exemplo,
resultado {resultados: [{… geometry {{ limites: { nordeste: { lat: 40. 7489545, lng: -73. 98483449999999}, sudoeste: { lat: 40. 7479245, lng: -73. 9865073}}, localização: { lat: 40. 7484395, lng: -73. 9856709}, …}
Como o JSON é tão crítico quanto XML, você teria que analisar o que é que a JSON lhe oferece.
Parsing JSON, no entanto, é bastante diferente da análise de XML. JSON é construído sobre duas estruturas que você está familiarizado com arrays e dicionários. O seguinte exemplo JSON usa ambos:
NSError * error = nil; NSDictionary * responseDict = [NSJSONSerialization JSONObjectWithData: dadosopções: NSJSONReadingMutableContainers error: & error];
Quando você faz a análise JSON, você tem algumas opções que você também pode definir:
-
NSJSONReadingMutableContainers: os arrays e os dicionários que você recupera são mutables para que você possa modificá-los. O padrão é imutável.
-
NSJSONReadingMutableLeaves: as strings que você retorna são mutables para que você possa modificá-las. O padrão é imutável.
-
NSJSONReadingAllowFragments: Especifica que o analisador deve permitir objetos de nível superior que não são arrays ou dicionários. O padrão exige que os objetos de nível superior JSON sejam um arrays ou dicionários.
Quando você usa a classe NSJSONSerialization, você (geralmente, mas não necessariamente) recupera uma matriz ou dicionário que pode incluir cadeias de caracteres e números e até mesmo outros arrays e dicionários (pense aqui na lista de propriedades).
Neste caso, você pode obter no local lat e lng fazendo
NSDictionary * result = [results objectAtIndex: 0]; NSDictionary * geometry = [result objectForKey: @ "geometry"]; NSDictionary * location = [geometry objectForKey: @ "localização"]; latitude = [valor de localizaçãoForKey: @ "lat"]; longitude = [valor de localizaçãoForKey: @ "lng"];