JSON解析不理解

时间:2011-12-20 10:54:27

标签: objective-c ios xcode json

在我的应用程序中,我以json格式从服务器捕获响应,如下所示:

{"hotels":
  {"data":
    [{"id":"id1",
    "country":"counry1",
    "state":"state1",
    "city":"city1",
    }
    {"id":"id2",
     "country":"counry2",
     "state":"state2",
     "city":"city2",
    }]
  }
}

如果我尝试通过此代码访问元素

ID = [[[ParsedResponse objectForKey:@"hotels"] objectForKey:@"data"] valueForKey:@"id"];
一切都好。但是如果我做的话

NSMutableDictionary *ItemsFromParsedResponse = [[NSMutableDictionary alloc] init];
ItemsFromParsedResponse = [ParsedResponse valueForKeyPath:@"hotels.data"];
while (ItemsFromParsedResponse = (NSMutableDictionary*)[ParsedResponseEnumerator nextObject]) {
    ID = [ItemsFromParsedResponse valueForKey:@"id"];
}

ID为[null]。我不明白,为什么。 谢谢你的任何建议。

1 个答案:

答案 0 :(得分:2)

你要么在这里做一些奇怪的事情,要么我们没有你所有的代码。我会写下你失败的代码如下:

 itemsFromParsedResponse = [parsedResponse valueForKeyPath:@"hotels.data"];

 for (NSDictionary *jsonFragment in itemsFromParsedResponse) {
     jsonID = [jsonFragment valueForKey:@"id"];
 } 

我遵循以小写字符开头的变量名约定(以大写字母开头应该为类名保留),我正在使用快速枚举,请记住{{1}处的信息是hotels.data。我还将NSArray重命名为ID,以避免与jsonID指针混淆。