Objective c 解析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"])

我正在解析Apple JSON(应用程序的评级)中的一些内容,我尝试了以下方法:

 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"])