1

下面是我输入的 JSON 输出NSDictionary

任何人都可以说一种通常识别""值和空值的方法吗?我正在尝试检查该值是否为空,并将其分配给UIlabel.

User =     {
        address = "";
        birthday = "<null>";
        gender = 0;
        "mobile_number" = "<null>";
        name = ambili;
        "phone_number" = "";
        picture = "http://lb.fo********inds.com/images/users/profile_pics/no_picture.jpg";
    };
    status = OK;
}
4

3 回答 3

0

您可以检查一个字符串是否等于另一个字符串:

if ([myString isEqualToString:@""] || [myString isEqualToString:@"<null>"]) {
    NSLog(@"empty or null");
}
于 2012-08-02T16:36:36.793 回答
0

最后我找到了一种简单的方法并且效果很好。我很高兴与大家分享。

 id phoneString = [Contentds valueForKeyPath:@"User.phone"];
    if (phoneString != [NSNull null])
    {
    label.text=[Contentds valueForKeyPath:@"User.phone"];
    }
于 2012-08-03T02:22:17.133 回答
0

由于您多次使用它,因此它是类扩展的一个很好的候选者。当您使用类扩展时,您可以使用自定义函数,例如:

if ([birthday hasJSONData])
{
    // Do something
}

为此,您创建一个新的 NSString 类扩展,如下所示:

头文件(NSString+Kurian_Utils.h):

#import <Foundation/Foundation.h>

@interface NSString (Kurian_Utils)

- (BOOL)hasJSONData;

@end

实现文件(NSString+Kurian_Utils.m):

#import "NSString+Kurian_Utils.h"

@implementation NSString (Kurian_Utils)

// If the NSString is nil, calling this function will return NO because it is sent to nil.
 - (BOOL)hasJSONData
{
    if ([self length] == 0)
    {
        return NO;
    }

    if ([self localizedCaseInsensitiveCompare:@"<null>"] == NSOrderedSame)
    {
        return NO;
    }

    return YES;
}

@end

然后就#import "NSString+Kurian_Utils.h"在你要使用的文件中hasJSONData

于 2012-08-02T17:23:20.263 回答