2012-07-02 38 views
0

我打電話給我返回JSON的URL(我使用JSONKit)。我把它轉換成這樣的NSString:NSDictionary充滿了JSON數據

[{"name":"aaaaaa","id":41},{"name":"as","id":23},... 

等等。我想填充一個UIPickerView只有JSON的「名稱」部分。但是,當用戶選擇一個名稱時,我需要「id」參數,所以我想用JSON填充一個NSDictionary(setValue:id爲key:name),這樣我就可以獲得用戶選擇的值,並從字典中獲得id。我怎樣才能填充只有JSON的「名稱」的數組?

我有點失去了與JSONKit庫,任何指導?謝謝。

回答

1

首先,我不認爲將name作爲字典中的關鍵字是個好主意,因爲您可以擁有許多相同的名稱。我會以id爲關鍵。

現在,你可以做的是:

NSString *myJson; //Suppose that this is the json you have fetched from the url 
id jsonObject = [myJson objectFromJSONString]; 
// Now you have an array of dictionaries 
// each one having 2 key/value pairs (name/id) 

NSArray *names = [jsonObject valueForKeyPath:@"name"]; 
NSArray *ids = [jsonObject valueForKeyPath:@"id"]; 

// Now you have two parallel arrays with names/ids 

或者你可以遍歷您的JSON對象和處理自己的數據:

for (id obj in jsonObject) 
{ 
    NSString *name = [obj valueForKey:@"name"]; 
    NSNumber *id = [obj valueForKey:@"id"]; 
    // Do whatever you like with these 
} 
+0

難道這些陣列真正的並行?我的意思是,如果jsonstring中的第15個元素有「name:myself id = 76」,[namearray objectanIndex:15]將返回「我自己」,[idsarray objectAtIndex:15]將返回76? – Fustigador

+0

@Fustigador沒錯。 – Alladinian

+0

好的阿拉丁語:)非常感謝。 – Fustigador