2014-10-27 67 views
1

在一本字典中,我有Key &值如下。我如何从下面获取“标题”值并将其存储在NSArray *数据中?如何将NSDictionary值存储到NSArray中?

{ 
    changed = 1414164684; 
    city = Stockholm; 
    class = "3. Mycket god klass"; 
    coordinates = "POINT(59.3246206 18.0686084)"; 
    id = 37510; 
    title = "19 Glas Bar & Matsal"; 
    total = 70;`enter code here` 
}, 
{ 
    changed = 1413991969; 
    city = "G\U00f6teborg"; 
    class = "2. M\U00e4starklass"; 
    coordinates = "POINT(57.697944330446234 11.974067687988281)"; 
    id = 34865; 
    title = "28+"; 
    total = 77; 
}, 
+0

你有一个字典数组,你想提取所有字典的标题值并将它们存储到数组中? – iHulk 2014-10-27 07:28:38

+0

在我看来,让他们像你一样需要所有与它相关的其他信息以备后用 – 2014-10-27 07:35:35

回答

2

上面提到的代码片段是一个数组,我们把它命名为“result_Array”。在“result_Array”中显示两个对象。而且每个对象都是一本字典。并从每个字典中获取标题并将其保存在名为“data”的数组中。在这里,我们去

NSMutableArray *data=[NSMutableArray new]; 

for(int i=0; i<result_Array.count ; i++) 
{ 
    NSDictionary *dict = [result_Array objectAtIndex:i]; 
    [data addObject:[dict objectForKey:@"title"]]; 
} 

希望它有帮助。随意问任何查询你的答案

+0

谢谢你!真的很感谢你的帮助! – 2014-10-27 09:43:18

+0

@StephenJebakumar,谢谢斯蒂芬,如果我建议的答案有效,请不要忘记标记为答案;)继续编码 – Jasmeet 2014-10-27 11:46:06

+0

什么是result_Array? – 2015-10-29 08:15:54

0

下面的例子将使用最少量的代码做同样的事情。

NSMutableArray *arr = [NSMutableArray new]; 

for (NSDictionary* dict in myArray) 
{ 
    [arr addObject:[dict valueForKey:@"title"]]; 
} 

arr对象将具有关键字'title'的所有值。

+0

“addObject”方法只能在'NSMutableArray'上使用。这在你的例子中不起作用,因为你使用了不可变的NSArray' – 2014-10-27 07:31:10

+0

是的,我纠正了,只要我发布了答案 – ZeMoon 2014-10-27 10:06:10

1

您提供的示例代码实际上是一个字典数组。因此,要回答你的问题与小的变化

NSArray *originalDict; 
NSMutableArray *data = [NSMutableArray new]; 
for (NSUInteger i = 0; i < originalDict.count; i++) { 
    NSDictionary *currentDictionaryPointer = [originalDict objectAtIndex:i]; 
    NSString *title = [currentDictionaryPointer objectForKey:@"title"]; 
    [data addObject:title]; 
} 

哪里originalDict是指向你所提供的示例代码的对象。

0

请执行以下步骤

1.First of all You should Create NSMutableArray 
2.After copy the dictionary to NSMutableArray 
    NSMutableArray *array = [yourDictionary copy]; 
3.After that set or create the for loop. 
4.Create NSString *strTitle in for loop. 
5.Finally strTitle = [NSString stringWithFormat:@"%@",[[array objectAtIndex:i]valueForKey:@"title"]]]; 
0

简单的步骤

NSMutableArray *array = [yourDict copy];[If it is your dict is NSMutableDictionary] 
    or 
NSMutableArray *array = [yourDict mutableCopy]; [If it is your dict is NSDictionary]; 

for(int i=0;i<[array count];i++) 
{ 

    NSString *strTitle = [NSString stringWithFormat:@"%@",[[array objectAtIndex:i]valueForKey:@"title"]]; 
    NSLog(@"the title is==%@",strTitle); 

} 
0

如果你得到“的东西的数组”,我也不会存储它在快译通我将其存储到一个NSArray,然后遍历它想:

var myObjects:[Object] 

var myCollection = yourJSON as NSArray (assuming that you always get the same. 

func myStuff (myCollection) { 
    for item in myCollection { 
    change = myCollection["changed"] as NSString (assuming a String here) 
    city = myCollection["city"] as NSString 
    ... 
    ... 

var Foo:Object = Object() 
Foo.change = change 
Foo.city = city 
... 
... 


myObjects.append(Foo) 
} 

以后你现在可以EA甲硅烷迭代myObjects阵列呈现的东西,在一个TableView中

1

如果你的NSDictionary的数组,那么你可以得到一个使用密钥方法“valueForKey”的所有值没有任何迭代:

NSArray *list = @[ 

@{@"changed":@"1414164684", 
@"title":@"19 Glas Bar & Matsal"}, 

@{@"changed":@"1413991969", 
@"title":@"28+"}]; 

NSArray *titles = [list valueForKey:"title"]; 

在数组标题只能从列表中获得标题。

相关问题