Objective c 解析json不正确
我正在解析Apple JSON(应用程序的评级)中的一些内容,我尝试了以下方法:Objective c 解析json不正确,objective-c,cocoa-touch,cocoa,Objective C,Cocoa Touch,Cocoa,我正在解析Apple JSON(应用程序的评级)中的一些内容,我尝试了以下方法: if ([StoreParse objectForKey:@"averageUserRating"] == @"4.5") { NSLog(@"xx"); } else { NSLog(@"xxx"); } 该应用程序的评级为4.5,如果我有 NSlog (@"%@", [StoreParse objectForKey:@"averageUserRating"])
if ([StoreParse objectForKey:@"averageUserRating"] == @"4.5") {
NSLog(@"xx");
} else {
NSLog(@"xxx");
}
该应用程序的评级为4.5,如果我有
NSlog (@"%@", [StoreParse objectForKey:@"averageUserRating"]);
输出为:4.5
但是当我运行脚本时,第一个代码输出中的NSlog是“xxx”,有人能帮我吗?你不能这样做:
if ([StoreParse objectForKey:@"averageUserRating"] == @"4.5")
您需要执行以下操作:
if ([[StoreParse objectForKey:@"averageUserRating"] isEqualToString:@"4.5"])
假设它是一个字符串。如果是NSNumber
,则执行以下操作:
if ([[StoreParse objectForKey:@"averageUserRating"] floatValue] == 4.5f)
(虽然是)
有关字符串相等的详细信息,请参阅。您不能执行此操作:
if ([StoreParse objectForKey:@"averageUserRating"] == @"4.5")
您需要执行以下操作:
if ([[StoreParse objectForKey:@"averageUserRating"] isEqualToString:@"4.5"])
假设它是一个字符串。如果是NSNumber
,则执行以下操作:
if ([[StoreParse objectForKey:@"averageUserRating"] floatValue] == 4.5f)
(虽然是)
有关字符串相等性的更多信息,请参阅。使用
isEqualToString
:
if ([[StoreParse objectForKey:@"averageUserRating"] isEqualToString:@"4.5"]) {
NSLog(@"xx");
}
使用
isEqualToString
:
if ([[StoreParse objectForKey:@"averageUserRating"] isEqualToString:@"4.5"]) {
NSLog(@"xx");
}
比较字符串(本质上是指向NSSring类实例的指针)是错误的,因为两个相同的内容字符串可能具有不同的内存地址。使用
if ([[StoreParse objectForKey:@"averageUserRating"] isEqualToString:@"4.5"])
相反。比较字符串(本质上是指向NSSring类实例的指针)是错误的,因为两个相同的内容字符串可能具有不同的内存地址。使用
if ([[StoreParse objectForKey:@"averageUserRating"] isEqualToString:@"4.5"])
相反。如果
averageUserRating
的值是NSNumber
,则应首先将其转换为格式化的NSString
,然后将其与@“4.5”
字符串文字进行比较:
if ([[NSString stringWithFormat:@"%1.1f", [[StoreParse objectForKey:@"averageUserRating"] floatValue]] isEqualToString:@"4.5"])
如果
averageUserRating
的值是一个NSNumber
,则应首先将其转换为格式化的NSString
,然后将其与@“4.5”
字符串文字进行比较:
if ([[NSString stringWithFormat:@"%1.1f", [[StoreParse objectForKey:@"averageUserRating"] floatValue]] isEqualToString:@"4.5"])