将整个数组添加到 nsdictionary
Posted
技术标签:
【中文标题】将整个数组添加到 nsdictionary【英文标题】:Adding entire array to nsdictionary 【发布时间】:2016-05-06 15:49:51 【问题描述】:NSDictionary *searchResponseJSON = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
arrayOfRestaurants = searchResponseJSON[@"businesses"];
NSDictionary *businesses = [arrayOfRestaurants firstObject];
NSString *businessesID = businesses[@"id"];
我正在尝试将数组中的所有数据放入 nsdictionary 中,而不仅仅是第一个对象。有一个更好的方法吗?我似乎无法将数组中的所有数据都放入 nsdictionary
旁注:我对 Objective c 很陌生
【问题讨论】:
你想为数组中的每个对象创建一个键和值都相同的字典吗? arrayOfRestaurants 还有什么?对象数组或字典数组? @TejaNandamuri 给你第二个Q“对象数组还是字典数组?”:既然是JSON,“对象”是字典。 但是,我也有同样的问题:你想要一个id->data形式的字典吗? 谢谢@AminNegm-Awad 的澄清 【参考方案1】:NSDictionary *dictProducts=[response valueForKey:kViewModel];
将对象添加到数组中
[_yourArray addObject:[dictProducts objectForKey:kProductID]];
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject: _yourArray forKey:@"Your_Key"];
你可以在这个类中使用相同的键来使用这个字典
【讨论】:
【参考方案2】:请试试这个,它可能对你有帮助
NSArray * myArray = [NSArray arrayWithObjects:@"hello", @"hi", @"hey"];
NSDictionary * dict = [NSDictionary dictionaryWithObject:myArray forKey:@"threeLetters"];
NSMutableDictionary * mutableDict = [NSMutableDictionary dictionaryWithCapacity:10];
[mutableDict setObject:myArray forKey:@"threeLetters"];
【讨论】:
【参考方案3】:只需在数组上使用 for 循环迭代,您将从那里获取每个对象并执行您的工作。在您获取所有对象后我不需要您告诉我,我将编辑我的答案
NSDictionary *searchResponseJSON = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
if [searchResponseJSON[@"businesses"] isKindofClass: [NSDictionary class]]
arrayOfRestaurants = dictionary;
for NSDictionary * dictionary in arrayOfRestaurants
print("dictionary")
【讨论】:
arrayOfRestaurants 可能包含也可能不包含字典。如果它不包含字典,你的代码会崩溃!【参考方案4】:NSDictionary
是一个 unordered collection of objects
,但每个包含的值都是 associated with a key,
,它就像值的标签。
NSArray * array = [NSArray arrayWithObjects:@"One",@"Two"@"Three",@"Four",nil];
1) 如下图直接插入数组元素:
[NSDictionary initWithObjectsAndKeys:[NSArray arrayWithObjects:@"One",@"Two"@"Three",@"Four",nil], @"FirstKey", nil];
2) 在 NSDictionary 中插入 NSArray
NSDictionary * dict = [NSDictionary dictionaryWithObject:myArray forKey:@"FirstKey"];
【讨论】:
以上是关于将整个数组添加到 nsdictionary的主要内容,如果未能解决你的问题,请参考以下文章
Javascript,追加节点添加整个数组而不是最后一个元素