NSDictionary添加分类,实现以下方法。
1.返回NSString
- (NSString *)jsonString:(NSString *)key
{
id object = [self objectForKey:key];
if ([object isKindOfClass:[NSString class]])
{
return object;
}
else if([object isKindOfClass:[NSNumber class]])
{
return [object stringValue];
}
return @"";
}
2.返回NSDictionary
- (NSDictionary *)jsonDict:(NSString *)key
{
id object = [self objectForKey:key];
return [object isKindOfClass:[NSDictionary class]] ? object : [NSDictionary dictionary];
}
3.返回NSArray
- (NSArray *)jsonArray:(NSString *)key
{
id object = [self objectForKey:key];
return [object isKindOfClass:[NSArray class]] ? object : [NSArray array];
}
4.返回NSArray,并且元素全部为NSString
- (NSArray *)jsonStringArray:(NSString *)key
{
NSArray *array = [self jsonArray:key];
BOOL invalid = NO;
for (id item in array)
{
if (![item isKindOfClass:[NSString class]])
{
invalid = YES;
}
}
return invalid ? [NSArray array] : array;
}
5.返回BOOL
- (BOOL)jsonBool:(NSString *)key
{
id object = [self objectForKey:key];
if ([object isKindOfClass:[NSString class]] ||
[object isKindOfClass:[NSNumber class]])
{
return [object boolValue];
}
return NO;
}
6.返回NSInteger
- (NSInteger)jsonInteger:(NSString *)key
{
id object = [self objectForKey:key];
if ([object isKindOfClass:[NSString class]] ||
[object isKindOfClass:[NSNumber class]])
{
return [object integerValue];
}
return 0;
}
7.返回long long
- (long long)jsonLongLong:(NSString *)key
{
id object = [self objectForKey:key];
if ([object isKindOfClass:[NSString class]] ||
[object isKindOfClass:[NSNumber class]])
{
return [object longLongValue];
}
return 0;
}
8.返回unsigned long long
- (unsigned long long)jsonUnsignedLongLong:(NSString *)key
{
id object = [self objectForKey:key];
if ([object isKindOfClass:[NSString class]] ||
[object isKindOfClass:[NSNumber class]])
{
return [object unsignedLongLongValue];
}
return 0;
}
9.返回double
- (double)jsonDouble:(NSString *)key{
id object = [self objectForKey:key];
if ([object isKindOfClass:[NSString class]] ||
[object isKindOfClass:[NSNumber class]])
{
return [object doubleValue];
}
return 0;
}