- (void)receiveData:(NSData *)data {
self.office = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
self.files = [office objectForKey:@"files"];
[self.myTableView reloadData];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.files.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [[UITableViewCell alloc] init];
NSDictionary *file = [self.files objectAtIndex:indexPath.row];
cell.textLabel.text = [file objectAtIndex:1]; //here i want to get data from the array
cell.textLabel.font = [UIFont boldSystemFontOfSize:15];
cell.textLabel.numberOfLines = 1;
return cell;
NSLog(@"files:\n%@", file);
}
我有一个json响应,我已存储在NSDictionary办公室,并且json中的数组存储在NSArray文件中,现在我已将文件数组提供给另一个NSDictionary文件,并根据存储在该文件中的数据我想要该数据在我的表行中,但我的文件数组中没有任何“键”,只有该数组中的值,
所以我的问题是我如何在我的文件字典中指出该值,我已经在我想要的地方发表评论,请看那条评论....
答案 0 :(得分:0)
您正在创建字典:
NSDictionary *file = [self.files objectAtIndex:indexPath.row];
NSDictionary
使用键编制索引,因此您必须使用objectForKey:
cell.textLabel.text = [file objectForKey:@"fileName"];
答案 1 :(得分:0)
我认为您必须误解NSDictionary的工作方式,否则您在self.files中访问的对象实际上并不是NSDictionaries。如果它们实际上是NSDictionary对象,则需要像runmad用
一样访问它们[file objectForKey:@"keyName"]
如果没有按键,那么您正在处理不同类型的对象,我们需要了解更多细节以便能够为您提供帮助。当你发布问题时,runmad给了你正确的答案。
答案 2 :(得分:0)
JSON解析器NSJSONSerialization可能没有创建您认为具有的NSDictionary / NSArray结构。你必须检查你的JSON,例如使用jsonlint.com,然后使用NSLog查看字典/数组中的内容。还可以尝试一些NSJSONReadingOptions选项。