解析Json响应iphone目标c



我在json中有以下响应,我不确定如何解析它

[{"WordArray":[{"Id":11,"Word1":"ODDER","Category":"Dyr","Differculty":1,"Language":"Danish"},{"Id":225,"Word1":"PRAG","Category":"International by","Differculty":1,"Language":"Danish"}]},{"WordArray":[{"Id":3,"Word1":"TIGER","Category":"Dyr","Differculty":1,"Language":"Danish"},{"Id":154,"Word1":"BOLLE","Category":"Mad og drikke","Differculty":1,"Language":"Danish"}]},
{"WordArray":[{"Id":3,"Word1":"TIGER","Category":"Dyr","Differculty":1,"Language":"Danish"},{"Id":147,"Word1":"PIZZA","Category":"Mad og drikke","Differculty":1,"Language":"Danish"}]}]

我尝试了以下没有运气

NSMutableArray* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
NSMutableArray * roundWords = [[NSMutableArray alloc]retain ];
roundWords = [json objectAtIndex:i];

json包含我的3个"WordArray",但我不确定如何继续。。例如,我如何迭代WordArray和NSLog中的每个项Word1值?

谢谢!

如何迭代WordArray和NSLog中的每个项Word1值

使用快速枚举。

for (NSDictionary *dict in array) {
    NSLog(@"%@", [dict objectForKey:@"Word1"]);
}

顺便说一下,你的代码有几个地方是错误的:

NSMutableArray *roundWords = [[NSMutableArray alloc] retain];
roundWords = [json objectAtIndex:i];

第一,不要像这样使用与alloc链接的retain。使用init初始化对象。

第二:除非你使用ARC(你不使用(,否则你会用那一行泄露内存——因为你重新分配了其他东西,所以指向原始数组的指针会被丢弃

第三:[json objectAtIndex:i]不是NSMutableArray,而是NSDictionary(顺便说一句,它是不可变的。声明并不神奇——无论你声明了什么变量,它都不会影响NSJSONSerialization返回不可变字典的事实,除非另有规定(。

最新更新