【发布时间】:2016-08-30 16:19:21
【问题描述】:
我有一本名为array的字典:
{
"encoding": "320",
"format": "MP3",
"media": "CD",
"name": "foo",
"remaster_title": ""
},
{
"encoding": "V0 (VBR)",
"format": "MP3",
"media": "CD",
"name": "bar",
"remaster_title": ""
},
{
"encoding": "Lossless",
"format": "FLAC",
"media": "CD",
"name": "bar",
"remaster_title": "hoho"
}
我想将它们分开,以便它们是独一无二的。例如,应该只有一个name,所以会有两个部分:foo 和bar。
然后在每个name(foo 或bar)内应该有remaster_title(对于foo: 和bar 两者: 和hoho)。 ..
这应该是顺序:name > remaster_title > media > format > encoding。
我认为如果我的格式类似于:
music[name][remaster_title][media][format] = encoding
那么所有的键都会合并?
我试过了:
+(NSMutableDictionary*)handleReturnedArtistJson:(NSDictionary*)json{
NSMutableDictionary *music = [[NSMutableDictionary alloc] init];
for(NSDictionary *result in json[@"response"][@"group"]) {
NSString* release_type = result[@"releaseType"];
NSString* name = result[@"groupName"];
if (![release_type isEqual: @"Compilation"]){
for (NSDictionary *subgroup in result[@"subgroup"]){
NSString* media = subgroup[@"media"];
NSString* remaster_title = subgroup[@"remasterTitle"];
NSString* format = subgroup[@"format"];
NSString* encoding = subgroup[@"encoding"];
music[name][remaster_title][media][format] = encoding;
}
}
}
return music;
}
但是NSLog(@"%@",music); 什么也没返回。
【问题讨论】:
-
我不明白你为什么想要所有嵌套的字典,为什么不只使用
{name:{remastered_title1:{"encoding":...,"format":...,"media":...}, remasted_title2:{...}}, name2:...}之类的东西? -
正如 Tadhg 所说,您是否有理由在多嵌套字典中需要它?数据是否可以以嵌套格式传递到您的应用程序,如果可以,您可能会使用 Mantle,如果您正在寻找,我可以提供一个示例。
-
我只是希望能够遍历每个数组中的每个数组 :) 我对结构很困惑!
标签: objective-c arrays json