我与天气地下API努力使一个应用程序,我一直在分析有关严重的警报块碰钉子。 JSON的使用有子键值对key-value对 - 这还没有给我一个问题,因为我可以让后续的NSDictionaries淘汰者 - 但对于严重的警报条目已被证明存在问题。 见下文:
"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"
}
]
“警报”对不同于其他我已经能够解析,因为它周围的子值这个[]支架和我不知道如何清除它,所以我可以访问子值。 在其他的例子,我已经能够解析,它只有在括号{},而不是同时与{}和[]括号中。 作为参考,括号内是始终存在 - 即使没有灾害性天气警报......在该实例的“警报”对返回括号[]与当前没有子对。
有没有一种方法,我可以从NSDictionary中删除括号[],或以其他方式忽略它们? 任何意见,将不胜感激!
作为参考和故障排除的帮助,这里是我是如何解析成功的JSON文件的其余部分:
1)从原始JSON创建一个NSDictionary
//Process Weather Call
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
2)创建用于嵌套JSON对随后的字典
NSDictionary *current_observation = [json objectForKey:@"current_observation"];
3)分配的值
NSString* weather;
weather = [current_observation objectForKey:@"weather"];
所以,最终的结果将是一个字符串,说:“晴间多云”什么的,与我没有表现出大量相关的天气值一起。 这些成功的解析,因为他们只拥有范围括号{},而不是括号[]。