我有一个来自plist的数组,每个值都包含一个键和一个字符串以及一个从json文件在线获取的辅助数组。我想根据第一个数组中的键来订购辅助数组。
我想实现这样的目标:
ARRAY1: 第0项 - 欧元 - 字符串 第1项 - 美元 - 字符串 第2项 - 澳元 - 字符串 等
数组2: 第0项 - 澳元 - 123.242 第1项 - 欧元 - 535.123 第2项 - 美元 - 325.646 等
我在两者上都有相同的键索引,但我想根据array1中键索引的顺序从array2获取键索引的值。
我在网上进行过研究,但我找不到合适的解决方案,我可以理解如何实现它。
我该如何实现?
以下是plist文件 - https://gist.github.com/iulianvarzaru/11c400ba1edf4a165082
json文件 - https://gist.github.com/iulianvarzaru/1915e02a9201c57f49b3
答案 0 :(得分:1)
鉴于您链接到的JSON文件不包含数组而是字典,您可以简单地从plist文件迭代array1
。该数组的每个元素都是一个带有“Cod”键和“Descriere”键的字典。获取“Cod”键的值,然后只使用该值作为JSON文件中字典的键。
NSDictionary* jsonFileDict = ...;
NSDictionary* jsonFileInnerDict = jsonFileDict[@"rate"];
for (NSDictionary* dict in array1)
{
NSString* code = dict[@"Cod"];
NSNumber* jsonNumber = jsonFileInnerDict[code];
// Do something with jsonNumber
}
答案 1 :(得分:0)
听起来这些是键值对,在这种情况下,您可以将其转换为Map,然后进行直接查找。
如果您可以将JSON文件操作为JSON,那么它会减少转换,但可能不是最有效的实现。
注意事项:
编辑:(由于OP的信息增加)。
您收到的JSON文件不包含数组,它包含一个对象。因此,所有值都是直接查找。因此,您可以在Obj-c中遍历数组,并直接访问JSON中的相应值。
很抱歉缺少实际的代码示例。
答案 2 :(得分:0)
您正在处理响应中的字典,而不是数组。
您应该将其转换为类似
的内容{
@"currency": @"EUR",
@"value": 123.45
}
创建并对其进行排序
NSArray *keys = @[@"EUR",@"USD",@"AUD"];
NSDictionary *dict = @{@"AUD":@(123.242), @"EUR": @(535.123), @"USD": @(325.646)};
NSMutableArray *result = [@[] mutableCopy];
for (NSString *key in keys) {
[result addObject:@{@"value":dict[key], @"currency": key}];
}
NSLog(@"%@", result);
(
{
currency = EUR;
value = "535.123";
},
{
currency = USD;
value = "325.646";
},
{
currency = AUD;
value = "123.242";
}
)
或者编写一个可以处理此信息的模型类。