如何将整数值解析为 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?的主要内容,如果未能解决你的问题,请参考以下文章

SQL如何将整数值四舍五入到小数点后2位

如何将整数值分配给字符串并在 SQL 中找到总和

sql 将整数值转换为日期

将整数值分解为保持总和的整数数组

在 iOS 中,如何将 JSON 字符串解析为对象

如何在ios中将字典的双引号数组解析为json?