JSON解析不解
Posted
技术标签:
【中文标题】JSON解析不解【英文标题】:JSON parsing incomprehension 【发布时间】:2011-12-20 10:54:26 【问题描述】:在我的应用程序中,我以 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】:要么你在这里做一些奇怪的事情,要么我们没有你所有的代码。我会写你失败的代码如下:
itemsFromParsedResponse = [parsedResponse valueForKeyPath:@"hotels.data"];
for (NSDictionary *jsonFragment in itemsFromParsedResponse)
jsonID = [jsonFragment valueForKey:@"id"];
我遵循了以小写字符开头的变量名称的约定(以大写字符开头的类名应该保留),并且我正在使用快速枚举,请记住hotels.data
处的信息是一个NSArray
。我还将ID
重命名为jsonID
以避免与id
指针混淆。
【讨论】:
以上是关于JSON解析不解的主要内容,如果未能解决你的问题,请参考以下文章