提问人:user3432634 提问时间:5/18/2022 更新时间:5/18/2022 访问量:53
从 JASON 数据访问 string 和 int 值
Accessing string and int values from JASON data
问:
解析本地保存的JSON文件,将JSON数据存储在NSArray中,并进一步以id类型存储NSArray以在表视图中打印值,但在获取像“id”这样的int值时崩溃,如果我想在自定义TableViewCell中显示不同的值,我还必须做什么。
-(void)jasonParsing
{
NSString * filePath =[[NSBundle mainBundle] pathForResource:@"EmployeeData" ofType:@"json"];
NSError * error;
NSString* fileContents =[NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
if(error)
{
NSLog(@"Error reading file: %@",error.localizedDescription);
}
//@property NSArray *dataList; defined in (.m)
self.dataList = (NSArray *)[NSJSONSerialization
JSONObjectWithData:[fileContents dataUsingEncoding:NSUTF8StringEncoding]
options:0 error:NULL];
}
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [[UITableViewCell alloc]init];
if (cell==nil)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
}
id keyValuePair =self.dataList[indexPath.row];
//by using below code crashing with error([__NSCFNumber isEqualToString:]: unrecognized selector sent to instance)
cell.textLabel.text = keyValuePair[@"id"];
//by using below code values are printing all the name
cell.textLabel.text = keyValuePair[@"name"];
return cell;
}
答: 暂无答案
评论
eyValuePair[@"id"];
是 a ,而不是 a 根据错误。你可以做.NSNumber
NSString
[keyValuePair[@"id"] stringValue]
(NSArray *)
id
NSArray
NSNumber
NSString
NSString