JSON解析不解
问题描述:
在我的应用我赶上从服务器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]。我不明白,为什么。 感谢您的任何建议。
答
你要么在这里做一些奇怪的事情,要么我们没有你所有的代码。我会写的代码发生故障的部件如下:
itemsFromParsedResponse = [parsedResponse valueForKeyPath:@"hotels.data"];
for (NSDictionary *jsonFragment in itemsFromParsedResponse) {
jsonID = [jsonFragment valueForKey:@"id"];
}
我已经按照以小写字符开头的变量名的约定(以大写字母开始应保留类名),我使用快速枚举,请记住hotels.data
的信息是NSArray
。我还将ID
更名为jsonID
,以免与指针id
混淆。
非常感谢。有用。 – Akki 2011-12-20 11:26:35