将NSDictionary转换为NSMutableArray

时间:2013-09-19 10:40:57

标签: ios json nsmutablearray nsarray nsdictionary

我有这段代码:

NSDictionary *jsonGuardado = [self dictionaryFromJson:JSON];
NSLog(@"HOLA %@",jsonGuardado);
NSMutableArray *arrayCodigos = [jsonGuardado objectForKey:@"code"];
codigos = arrayCodigos;

(Codigos是一个NSMutableArray)

NSLOG归还:

HOLA (
        {
        code = 22051310;
    },
        {
        code = 22051311;
    },
        {
        code = 22051312;
    },
        {
        code = 22051313;
    }
)

但在此之后,消息错误说:

-[JKArray objectForKey:]: unrecognized selector sent to instance

我在Google中搜索此错误,此处以及我发现的所有问题对我没有帮助。

我正在使用JSONKit来制作dictionaryFromJson方法。

3 个答案:

答案 0 :(得分:6)

你试试这个,

NSArray *jsonGuardado = [self dictionaryFromJson:JSON];
NSLog(@"HOLA %@",jsonGuardado);
NSMutableArray *arrayCodigos = [NSMutableArray arrayWithArray:[jsonGuardado valueForKey:@"code"]];
NSLog(@"arrayCodigos %@", arrayCodigos);

它只打印值。

答案 1 :(得分:2)

解析器返回一个数组,而不是你的字典中的字典。

[self dictionaryFromJson:JSON]返回一个Json数组,但是你在NSDictionary

中捕获它

答案 2 :(得分:1)

您的日志表明它已经NSArray。你应该尝试下面的

NSMutableArray *jsonGuardado = [NSMutableArray array];
jsonGuardado = (id)[self dictionaryFromJson:JSON];
NSLog(@"HOLA %@",jsonGuardado);
NSMutableArray *arrayCodigos = [[jsonGuardado objectAtIndex:0] valueForKey:@"code"];
codigos = [arrayCodigos copy];
NSLog(@"Array %@",codigos);