将整个数组添加到 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,追加节点添加整个数组而不是最后一个元素

将对象添加到java mongodb中的数组

如何将一组 UIButtons 添加到 UIStackview 上?

将整个位图数据复制到字节数组

如何在我的数组中添加货币符号?

如何在 Vue.js 中显示 Firebase 数组项