我在Android中很容易做到,但我很少失去如何在iOs中做到这一点。 我的json就像:
[{"name":"qwe","whatever1":"asd","whatever2":"zxc"},
{"name":"fgh","whatever1":"asd","whatever2":"zxc"}]
如果我这样做:
NSData *jsonData = [data dataUsingEncoding:NSUTF32BigEndianStringEncoding];
rows = [NSJSONSerialization JSONObjectWithData: jsonData options: NSJSONReadingMutableContainers error: &error];
行中的可以用?
访问NSString *name = [[rows objectAtIndex:0] [objectForKey:@s"name"]];
或者我是怎么做到的?感谢。
最终 NSString *name = [[rows objectAtIndex:0] objectForKey:@"name"]];
工作! :d
答案 0 :(得分:3)
我认为这样可行,但是你想要:
NSString *name = [[rows objectAtIndex:0] objectForKey:@"name"];
(删除了无关的方括号,并使用@"name"
作为字符串文字。)
但是,输入JSON真的是UTF-32格式吗?
答案 1 :(得分:2)
NSMutableArray *row= [NSJSONSerialization JSONObjectWithData: jsonData options: NSJSONReadingMutableContainers error: &error];
for (int i=0; i<[row count]; i++) {
NSMutableDictionary *dict=[row objectAtIndex:i];;
NSString * name=[dict valueForKey:@"name"];
NSLog(@"%@",name);
}
}
答案 2 :(得分:2)
假设NSJSONSerialization
操作成功,只需:
NSString *name = rows[0][@"name"];
NSUTF32BigEndianStringEncoding
是可疑的,json数据通常是NSUTF8StringEncoding
。