我正在使用Weather Underground API製作應用程序,並且在解析與嚴重警報相關的塊時遇到了一些障礙。 JSON使用具有子鍵值對的鍵值對 - 這對我來說不成問題,因爲我可以將後續NSDictionaries放在其中 - 但嚴重警報的條目已證明存在問題。請看下圖:將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)從原始JSON
//Process Weather Call
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
2)創建創建一個NSDictionary隨後的字典嵌套json對
NSDictionary *current_observation = [json objectForKey:@"current_observation"];
3)分配值
NSString* weather;
weather = [current_observation objectForKey:@"weather"];
因此,最終結果將是一個字符串,表示「部分多雲」或其他,以及我沒有顯示的許多相關天氣值。這些解析成功,因爲它們只有範圍括號{},而不是[]括號。
當然,一個數組!那些括號應該已經把它刪除了...我想我今天工作太久了。 :p 無論如何,在警報環境中也是有意義的 - 在給定時間可能有多個警報,因此應該有一些方法來處理API中的警報。 我會試一試 - 感謝您的幫助! – 2012-04-28 23:27:11