如何将整数值解析为 Json iOS?
Posted
技术标签:
【中文标题】如何将整数值解析为 Json iOS?【英文标题】:How to parse integer value to Json iOS? 【发布时间】:2013-07-27 11:47:18 【问题描述】:我通过了 NSstring,它正确地将数据输入到 uitableview,但是当我解析整数值时,它显示异常终止应用程序由于未捕获的异常'NSInvalidArgumentException', reason: -[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0x744e9d0
这是我的代码
(void)fetchedData:(NSData *)responseData
//parse out the json data
NSError* error;
NSDictionary* json = [NSJSONSerialization
JSONObjectWithData:responseData options:kNilOptions error:&error];
NSArray * values=[json objectForKey:@"loans"];
NSLog(@"Array: %@",values);
for (NSDictionary *file in values)
NSNumber *fileTitle=[file objectForKey:@"id"];
// NSString *fileTitle = [file objectForKey:@"sector"];
[titles addObject: fileTitle];
[self.mainTableView reloadData];
【问题讨论】:
如果您只阅读消息,它会告诉您出了什么问题。虽然错误不在上面的代码中。您试图将 NSNumber 视为字符串。 JSON 中的数字通常转换为 Objective-C NSNumber。 【参考方案1】:您正在将字符串值分配给NSNumber
类型。
尝试使用这个
NSString *fileTitle=[file objectForKey:@"id"];
[titles addObject: fileTitle];
并使用字符串值。
【讨论】:
【参考方案2】:[[titles addObject: fileTitle] stringValue];
【讨论】:
【参考方案3】:我猜你在你的-tableView: cellForIndexPath
中做这样的事情:
UITableViewCell *cell = [...];
cell.titleLabel.text = titles[indexPath.row];
您只能将 NSString 用于-[UILabel setText:]
方法。
使用简单的-[NSNumber stringValue]
或使用 NSNumberFormatter 将您的 NSNumber 转换为 NSString。
【讨论】:
【参考方案4】:一切似乎都很好。只需替换
NSNumber *fileTitle=[file objectForKey:@"id"];
NSString *fileTitle = [file objectForKey:@"id"];
【讨论】:
以上是关于如何将整数值解析为 Json iOS?的主要内容,如果未能解决你的问题,请参考以下文章