2015-11-05 78 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