在NSDictionary中格式化JSON数据

时间:2014-10-12 10:34:59

标签: ios json data-structures

我正在尝试从JSON输入读取并将其放在NSDictionnary中,以便尽可能顺利地对待它。

我正在研究的例子是:

  

{" count":4," next":null," previous":null," results":[{&# 34; id":1," name":" Max"},{" id":2," name":& #34; Hugo"},{" id":3," name":" Romain"},{" id": 4,"姓名":" Laurent"}]}

我唯一感兴趣的是"结果"部分。

这就是我将数据放在数组中的方式:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"xxxxxx.com/?format=json"]]; 

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSError* err = nil;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:&err];

jsonArray的结构

的NSArray

http://i.stack.imgur.com/OFRY3.png

我对键/值对感到困惑,我做了一些研究而没有找到任何有价值的东西。我试过的是:

NSArray *values = [[jsonArray objectAtIndex:0] objectAtIndex:1];
    for(NSDictionary *item in values) {
        NSLog( @"%@ --- %@", item[@"id"], item[@"name"]);

但由于格式不好,我显然会收到错误。我是Objective C的新成员,我仍在搜索网页以找到合适的答案,但非常感谢帮助。

非常感谢!

1 个答案:

答案 0 :(得分:1)

看起来你的JSON是一个包含数组的字典:

NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:&err];

// then get your array
NSArray *results = jsonDict[@"results"];
// then print
for (NSDictionary *dict in results) {
    NSLog(@"id: %@, name: %@", dict[@"id"], dict[@"name"]);
}