我有一个填充了json的数组。
rows4 = [dict objectForKey:@"users"];
我有以下行来解析它的键值。
NSString *hotelname = (NSString *) [rows4 valueForKey:@"H_NAME"];
然后我将值分配给视图中的标签,并带有以下行:
LabelName.Text= hotelname;
这里的一切似乎都很好。我用Nslog写日志如下:
NSLog(@"HotelName : %@",hotelname);
这出现在日志中:
[11437:f803]酒店名称:( “布拉赫布拉酒店” )
然后模拟器在日志中崩溃并出现以下错误:
NSArrayI isEqualToString:]:无法识别的选择器发送到实例
我从中理解的是,我分配给标签的变量实际上不是变量,而是一个数组。我对吗?如果是这样,我如何借助键从变量中提取单个值并将其分配给变量,然后我可以将其分配给标签?
我正在使用touchJSON顺便说一句。
答案 0 :(得分:1)
一种选择是:
if(hotelname.count > 0)
LabelName.Text= [hotelname objectAtIndex:0];
答案 1 :(得分:0)
结帐this question。 JSON不是一个数组,它是一个字典。
- (void)viewDidLoad {
//below is a function from [this tutorial][2]
[super viewDidLoad];
NSString *jsonString = [NSString stringWithString:@"{\"foo\": \"bar\"}"];
NSDictionary *dictionary = [jsonString JSONValue];
NSLog(@"Dictionary value for \"foo\" is \"%@\"", [dictionary objectForKey:@"foo"]);
//This is your code, just changed some stuff...
NSString *hotelname = (NSString *) [jsonString valueForKey:@"?"];
LabelName.Text= hotelname;
}
希望这有所帮助,欢呼。