我的JSON在下面,我正在解析它:
NSDictionary *jsonDict=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
当我[jsonDict objectForKey:@"contactPoints"]
时,我收回NSArray的NSDictionary对象(每个联系人一个具有单个键/值对)而不是单个字典对象,其中包含3个键,如&#34 ;网站","电子邮件","电话"和他们的价值观。
为什么?或者我如何更好地构建我的JSON以获得像contactPoints这样的嵌入对象。
{
"name":"test",
"contactPoints": {
"website": "http://www.asdf.com",
"email": "asdf@gmail.com",
"phone": "(555) 555-5555"
},
"deliveryHours": {
"Monday": "9:00am - 12:00am",
"Tuesday": "9:00am - 12:00am",
"Wednesday": "9:00am - 12:00am",
"Thursday": "9:00am - 12:00am",
"Friday": "9:00am - 12:00am",
"Saturday": "9:00am - 12:00am",
"Sunday": "9:00am - 12:00am"
}
}
编辑看起来像是缓存数据问题。 NSURLRequest正在缓存页面(我在开发期间正在迅速改变)。解析现在按预期工作。
答案 0 :(得分:0)
如我所见,您的JSON脚本中没有数组。当你致电[jsonDict objectForKey:@"contactPoints"]
时,它将返回一个NSDictionary,而不是NSArray
NSDictionary* contactPoints = [jsonDict objectForKey:@"contactPoints"];
NSString *website= [contactPoints objectForKey:@"website"];
希望这有帮助!
答案 1 :(得分:0)
问题与缓存有关。更改为修复问题的NSURLRequestReloadIgnoringLocalCacheData策略后。我在开发过程中一直在快速更改JSON文件,这导致了问题。
问题中发布的json确实会返回contactPoints和deliveryHours的字典。