Estoy trabajando con Weather Underground API para hacer una aplicación y me he encontrado un inconveniente al analizar el bloque en relación con las alertas graves. El JSON utiliza pares de clave-valor que tienen pares de valores de clave secundaria, lo que no ha sido un problema para mí, ya que puedo sacar posteriores NSDictionaries de ellos, pero la entrada para alertas severas ha resultado problemática. Ver más abajo:Analizando una matriz JSON en un NSDictionary
"alerts": [
{
"type": "WAT",
"description": "Flash Flood Watch",
"date": "3:13 PM EDT on April 28, 2012",
"date_epoch": "1335640380",
"expires": "8:00 AM EDT on April 29, 2012",
"expires_epoch": "1335700800",
"message": "\u000A...Flash Flood Watch in effect through Sunday morning...\u000A\u000AThe National Weather Service in Charleston has issued a\u000A\u000A* Flash Flood Watch for portions of northeast Kentucky... (Note: I trimmed this for length's sake),
"phenomena": "FF",
"significance": "A"
}
]
Las "alertas" par difiere de otros que he estado capaz de analizar, ya que tiene esta [] soporte de que rodea a los sub-valores y no estoy seguro de cómo borrar tan Puedo acceder a los subvalores. En los otros ejemplos que he podido analizar, solo tiene los corchetes {}, y no los corchetes {} y []. Como referencia, los corchetes están siempre presentes, incluso cuando no hay alertas de clima severo ... en ese caso, el par de "alertas" devuelve los corchetes [] sin subpares presentes.
¿Hay alguna forma de eliminar los soportes [] del NSDictionary o ignorarlos? ¡Cualquier consejo sería apreciado!
Para referencia y ayuda para solucionar problemas, así es como estoy analizando el resto del documento JSON éxito:
1) Crear una NSDictionary del JSON prima
//Process Weather Call
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
2) Crear diccionarios posteriores para pares json anidados
NSDictionary *current_observation = [json objectForKey:@"current_observation"];
3) Asignar valores
NSString* weather;
weather = [current_observation objectForKey:@"weather"];
Así que el resultado final sería una cadena que dice "parcialmente nublado" o algo así, junto con numerosos valores meteorológicos relacionados que no he mostrado. Se analizan correctamente porque solo tienen los corchetes de alcance {}, y no los corchetes [].
¡Por supuesto, una matriz!Esos corchetes deberían haberlo regalado ... Creo que he estado trabajando demasiado tiempo hoy. : p De todos modos, también tiene sentido en el contexto de las alertas: puede haber más de una alerta en un momento determinado, por lo que debería haber alguna forma de manejar eso en la API. Lo probaré, ¡gracias por tu ayuda! –