我能夠解析我的JSON文件的一部分,但如果我想深入該結構中,我會迷路。這裏是我的JSON:解析目標C中的JSON信息(多個級別)
{
"album":[
{
"album_titre":"Publicité",
"album_photo":"blabla.jpg",
"album_videos":[
{
"titre_video":"Chauffage Compris",
"duree_video":"01'25''",
"photo_video":"chauffage.jpg",
"lien_video":"www.bkjas.jhas.kajs"
},
{
"titre_video":"NIFFF 2012",
"duree_video":"01'43''",
"photo_video":"nifff.jpg",
"lien_video":"www.bkjas.jhas.kajs"
}
]
},
{
"album_titre":"Events",
"album_photo":"bloublou.jpg",
"album_videos":[
{
"titre_video":"Auvernier Jazz",
"duree_video":"01'15''",
"photo_video":"auvernier.jpg",
"lien_video":"www.bkjas.jhas.kajs"
},
{
"titre_video":"NIFFF 2011",
"duree_video":"01'03''",
"photo_video":"nifff2011.jpg",
"lien_video":"www.bkjas.jhas.kajs"
}
]
},
{
"album_titre":"Culture",
"album_photo":"bilibl.jpg"
},
{
"album_titre":"Postproduction",
"album_photo":"bizoubzou"
}
]
}
這是我的Objective-C代碼:
- (void)fetchedData:(NSData *)responseData {
NSError* error;
NSDictionary *document = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
if (document==nil)
{
NSLog(@"oops\n%@", error);
}
NSArray *album = document[@"album"];
for(NSDictionary *albumDictionary in album)
{
[album_titre addObject:albumDictionary[@"album_titre"]];
[album_photo addObject:albumDictionary[@"album_photo"]];
for(NSDictionary *album_videosDictionary in albumDictionary[@"album_videos"])
{
[titre_video addObject:album_videosDictionary[@"titre_video"]];
[duree_video addObject:album_videosDictionary[@"duree_video"]];
[photo_video addObject:album_videosDictionary[@"photo_video"]];
[lien_video addObject:album_videosDictionary[@"lien_video"]];
}
}
[self.tableView reloadData];
}
我不能達到與例如包含所有「titre_video」相當於建立一個數組來「album_titre」 : 「publicité」。所以它應該包含「Chauffage Compris」和「Nifff 2012」。
我知道這是一個簡單的問題,但我搜索了一段時間,仍然無法做到這一點。
非常感謝。
尼古拉斯
轉到json.org並花費5-10分鐘學習JSON語法。 (這很簡單。)然後,我喜歡說,「剝洋蔥」,一次一層。現在避免在一個語句中深入幾層的「巧妙」構造。相反,將每個「圖層」分配給不同的臨時變量,以便更易於調試。 (並且熟悉JSON在轉換爲NS對象和NSLoggeed時發生的變化 - 特別是NSArray使用'()'字符而不是'[]')。 –