2015-11-05 76 views
-3

我有結構化的NSDictionary * jsonDict2數據如下圖所示:目標C - 的NSDictionary的NSArray到

{ 「成功」:真正的 「術語」: 「https://currencylayer.com/terms」,」隱私 「:」 https://currencylayer.com/privacy」, 「時間戳」:1446762908, 「源」: 「美元」, 「報價」:{ 「USDAED」:3.67295, 「USDAFN」:65.059998, 「USDALL」: 127.794502 「USDAMD」:476.320007, 「USDANG」:1.790285, 「USDAOA」:135.210495, 「USDARS」:9.56045,

,我需要填充的陣列 - 我用下面的代碼這樣做:

NSArray *CurrencyArray = [jsonDict2 objectForKey:@"quotes"]; 

填充數組: USDAED =「3.67295」; USDAFN =「65.05999799999999」; USDALL =「127.794502」; USDAMD =「476.320007」; USDANG =「1.790285」; USDAOA =「135.210495」;

,但我不希望值的數組(僅適用於例如:USDAED; USDAFN; USDALL ...)

一次我有一個數組,那麼我需要一些東西來提取所選擇的特定值陣列。例如,對於數組值USDANG,我需要從* jsonDict2字典中爲它提取值(我將使用選擇器來選擇數組中的值,字典中的值將顯示在標籤中)

回答

1

您需要小心地注意你的類型。

「引號」的值不是數組,而是另一個字典。

如果您想僅將字典的鍵作爲數組提取,請使用allKeys方法。要僅將字典的值作爲數組提取,請使用allValues方法。

0

的「行情」是一本字典,而不是一個數組,如果你想獲得的NSArray

,你必須將它手動

NSMutableArray *CurrencyArray = [NSMutableArray array]; 
NSMutableArray *CurrencyValueArray = [NSMutableArray array]; 
NSDictionary *CurrencyDict = [jsonDict2 objectForKey:@"quotes"]; 
for (NSString *key in CurrencyDict) { 
    [CurrencyArray addObject:key]; 
    [CurrencyValueArray addObject:[CurrencyDict valueForKey:key]]; 
} 
+0

爲什麼與'for'循環煩惱呢?只需使用'NSDictionary'的'allKeys'和'allValues'方法即可。 – rmaddy

+0

你是對的,我知道這兩個方法,但我只想告訴這個json的結構,可能在這個循環中有一些動作 – mcl