Я работаю с API Weather Underground над созданием приложения, и я столкнулся с проблемой при анализе блока, относящегося к к серьезным предупреждениям. В JSON используются пары значений ключа -, которые имеют пары значений подключа --, что не было проблемой для меня, поскольку я могу создавать последующие 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"
}
]
. Пара «оповещения» отличается от других, которые мне удалось разобрать, потому что у нее есть скобка [ ] , окружающая вспомогательные значения -, и я не знаю, как ее очистить. поэтому я могу получить доступ к подзначениям. В других примерах, которые мне удалось разобрать, в нем есть только скобки { } , а не обе скобки { } и [ ]. Для справки, квадратные скобки всегда присутствуют --, даже когда нет предупреждений о суровой погоде... в этом случае пара «оповещения» возвращает квадратные скобки [ ] без подпар -.
Можно ли удалить скобки [ ] из NSDictionary или иным образом игнорировать их? Любой совет будет принят во внимание!
Для справки и устранения неполадок, вот как я успешно анализирую остальную часть документа JSON:
1 )Создание NSDictionary из необработанного JSON
//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"];
Таким образом, конечным результатом будет строка с надписью «Переменная облачность» или что-то в этом роде вместе с многочисленными связанными значениями погоды, которые я не показал. Они анализируются успешно, потому что у них есть только скобки области видимости { }, а не скобки [ ].