我有一个基于键值的JSON数组,如下所示:
[
{"key": "firstKey", "value": "firstValue"},
{"key": "secondKey", "value": "secondValue"}
]
我需要将其转换为单维数组,例如,如果我只对JSON的“value”属性感兴趣,就像这样:
["firstValue", "secondValue"]
我必须使用什么样的对象映射来实现此目的?
我尝试将toKeyPath
设置为nil,希望它将解析后的值直接分配给我的接收对象(在读取单维数组时,fromKeyPath
设置为nil),但是没有不会发生。
答案 0 :(得分:0)
NSError* error;
NSMutableArray* resultArray = [NSMutableArray array];
NSArray* jsonArray = [NSJSONSerialization objectWithData:receivedJSONData options:nil error:&error];
if (jsonArray == nil) {
NSLog(@"Error: %@", error); // error occurred
}
else {
for (NSDictionary* jsonDict in jsonArray) {
[resultArray addObject: jsonDict[@"value"]];
}
}
答案 1 :(得分:0)
您使用nil键路径映射处于正确的轨道上(假设您希望为简单数组中的每个值使用不同的对象),但是您需要将其与响应描述符组合,该描述符将钻取到数据中以提取使用其关键路径的简单数组。
因此,映射具有nil密钥路径,响应描述符具有XXX.value
密钥路径(其中XXX是到达包含这些对象的数组的路径)。