如何在objective-c中解析数组JSON

时间:2013-02-15 10:18:04

标签: ios objective-c json

我在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

3 个答案:

答案 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