我在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
返回不可变字典的事实,除非另有规定(。