2014-10-27 70 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"]; 

在數組標題只能從列表中獲得標題。

相關問題